2023-03-09 23:07:13 +08:00
|
|
|
import subprocess
|
|
|
|
|
import unittest
|
|
|
|
|
|
|
|
|
|
from modelscope.utils.plugins import PluginsManager
|
|
|
|
|
|
|
|
|
|
|
2023-06-27 14:40:51 +08:00
|
|
|
@unittest.skipUnless(False, reason='For it modify torch version')
|
2023-03-09 23:07:13 +08:00
|
|
|
class PluginsCMDTest(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
|
print(('Testing %s.%s' % (type(self).__name__, self._testMethodName)))
|
|
|
|
|
self.package = 'adaseq'
|
|
|
|
|
self.plugins_manager = PluginsManager()
|
|
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
|
super().tearDown()
|
|
|
|
|
|
|
|
|
|
def test_plugins_install(self):
|
|
|
|
|
cmd = f'python -m modelscope.cli.cli plugin install {self.package}'
|
|
|
|
|
stat, output = subprocess.getstatusoutput(cmd)
|
|
|
|
|
self.assertEqual(stat, 0)
|
|
|
|
|
|
|
|
|
|
# move this from tear down to avoid unexpected uninstall
|
|
|
|
|
uninstall_args = [self.package, '-y']
|
|
|
|
|
self.plugins_manager.uninstall_plugins(uninstall_args)
|
|
|
|
|
|
|
|
|
|
def test_plugins_uninstall(self):
|
|
|
|
|
# move this from tear down to avoid unexpected uninstall
|
|
|
|
|
uninstall_args = [self.package, '-y']
|
|
|
|
|
self.plugins_manager.uninstall_plugins(uninstall_args)
|
|
|
|
|
|
|
|
|
|
cmd = f'python -m modelscope.cli.cli plugin install {self.package}'
|
|
|
|
|
stat, output = subprocess.getstatusoutput(cmd)
|
|
|
|
|
self.assertEqual(stat, 0)
|
|
|
|
|
|
|
|
|
|
cmd = f'python -m modelscope.cli.cli plugin uninstall {self.package}'
|
|
|
|
|
stat, output = subprocess.getstatusoutput(cmd)
|
|
|
|
|
self.assertEqual(stat, 0)
|
|
|
|
|
|
|
|
|
|
# move this from tear down to avoid unexpected uninstall
|
|
|
|
|
uninstall_args = [self.package, '-y']
|
|
|
|
|
self.plugins_manager.uninstall_plugins(uninstall_args)
|
|
|
|
|
|
|
|
|
|
def test_plugins_list(self):
|
|
|
|
|
cmd = 'python -m modelscope.cli.cli plugin list'
|
|
|
|
|
stat, output = subprocess.getstatusoutput(cmd)
|
|
|
|
|
self.assertEqual(stat, 0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
unittest.main()
|