diff options
Diffstat (limited to 'tests/integration/node_client.py')
-rwxr-xr-x | tests/integration/node_client.py | 151 |
1 files changed, 79 insertions, 72 deletions
diff --git a/tests/integration/node_client.py b/tests/integration/node_client.py index ec30271..3bb7999 100755 --- a/tests/integration/node_client.py +++ b/tests/integration/node_client.py @@ -37,80 +37,96 @@ class NodeClientTest(tests.Test): tests.Test.tearDown(self) def test_ReleaseActivity(self): + blob1 = self.zips(['TestActivitry/activity/activity.info', [ + '[Activity]', + 'name = TestActivitry', + 'bundle_id = activity2', + 'exec = true', + 'icon = icon', + 'activity_version = 1', + 'license = Public Domain', + 'stability = developer', + ]]) with file('bundle', 'wb') as f: - f.write(self.zips(['TestActivitry/activity/activity.info', [ - '[Activity]', - 'name = TestActivitry', - 'bundle_id = activity2', - 'exec = true', - 'icon = icon', - 'activity_version = 1', - 'license = Public Domain', - 'stability = developper', - ]])) - self.cli(['release', 'bundle', '--porcelain']) - - self.assertEqual([ - {'version': '1', 'stability': 'developper', 'license': ['Public Domain']}, - ], - self.cli(['GET', '/implementation', 'context=activity2', 'reply=version,stability,license', 'order_by=version'])['result']) - + f.write(blob1) + impl1 = self.cli(['release', 'bundle', '--porcelain', 'initial']) + + blob2 = self.zips(['TestActivitry/activity/activity.info', [ + '[Activity]', + 'name = TestActivitry', + 'bundle_id = activity2', + 'exec = true', + 'icon = icon', + 'activity_version = 2', + 'license = Public Domain', + 'stability = stable', + ]]) with file('bundle', 'wb') as f: - f.write(self.zips(['TestActivitry/activity/activity.info', [ - '[Activity]', - 'name = TestActivitry', - 'bundle_id = activity2', - 'exec = true', - 'icon = icon', - 'activity_version = 2', - ]])) - self.cli(['release', 'bundle', '--porcelain']) + f.write(blob2) + impl2 = self.cli(['release', 'bundle', '--porcelain']) self.assertEqual([ - {'version': '1', 'stability': 'developper', 'license': ['Public Domain']}, - {'version': '2', 'stability': 'stable', 'license': ['Public Domain']}, + {'guid': impl1, 'version': '1', 'stability': 'developer', 'license': ['Public Domain']}, + {'guid': impl2, 'version': '2', 'stability': 'stable', 'license': ['Public Domain']}, ], - self.cli(['GET', '/implementation', 'context=activity2', 'reply=version,stability,license', 'order_by=version'])['result']) + self.cli(['GET', '/implementation', 'context=activity2', 'reply=guid,version,stability,license', 'order_by=version'])['result']) + assert blob1 == file('node/implementation/%s/%s/data.blob' % (impl1[:2], impl1)).read() + assert blob2 == file('node/implementation/%s/%s/data.blob' % (impl2[:2], impl2)).read() - def test_CloneContext(self): + def test_ReleaseContext(self): context = self.cli(['POST', '/context'], stdin={ - 'type': 'activity', - 'title': 'title1', + 'type': 'content', + 'title': 'title', 'summary': 'summary', 'description': 'description', }) - spec = ['[Activity]', - 'name = TestActivitry', - 'bundle_id = %s' % context, - 'exec = true', - 'icon = icon', - 'activity_version = 1', - 'license = Public Domain', - ] + blob1 = 'content1' with file('bundle', 'wb') as f: - f.write(self.zips(['TestActivitry/activity/activity.info', spec])) - impl = self.cli(['release', 'bundle']) - - self.cli(['PUT', '/context/%s' % context, 'cmd=clone', '-jd1']) - assert exists('client/Activities/TestActivitry/activity/activity.info') - self.assertEqual('\n'.join(spec), file('client/Activities/TestActivitry/activity/activity.info').read()) + f.write(blob1) + impl1 = self.cli(['release', 'bundle', '--porcelain', + 'context=%s' % context, + 'license=GPLv3+', + 'version=1', + 'stability=developer', + ]) - def test_FavoriteContext(self): - context = self.cli(['POST', '/context'], stdin={ - 'type': 'activity', - 'title': 'title1', - 'summary': 'summary', - 'description': 'description', - }) + blob2 = 'content2' + with file('bundle', 'wb') as f: + f.write(blob2) + impl2 = self.cli(['release', 'bundle', '--porcelain', + 'context=%s' % context, + 'license=GPLv3+', + 'version=2', + 'stability=stable', + ]) - path = 'client/db/context/%s/%s/favorite' % (context[:2], context) - assert not exists(path) + self.assertEqual([ + {'guid': impl1, 'version': '1', 'stability': 'developer', 'license': ['GPLv3+']}, + {'guid': impl2, 'version': '2', 'stability': 'stable', 'license': ['GPLv3+']}, + ], + self.cli(['GET', '/implementation', 'context=%s' % context, 'reply=guid,version,stability,license', 'order_by=version'])['result']) + assert blob1 == file('node/implementation/%s/%s/data.blob' % (impl1[:2], impl1)).read() + assert blob2 == file('node/implementation/%s/%s/data.blob' % (impl2[:2], impl2)).read() - self.cli(['PUT', '/context/%s' % context, 'cmd=favorite', '-jdtrue']) + def test_CloneContext(self): + activity_info = '\n'.join([ + '[Activity]', + 'name = TestActivitry', + 'bundle_id = bundle_id', + 'exec = true', + 'icon = icon', + 'activity_version = 1', + 'license = Public Domain', + ]) + with file('bundle', 'wb') as f: + f.write(self.zips(['TestActivitry/activity/activity.info', activity_info])) + impl = self.cli(['release', 'bundle', '--porcelain', 'initial']) - assert exists(path) - self.assertEqual(True, json.load(file(path))['value']) + self.cli(['PUT', '/context/bundle_id', 'cmd=clone', '-jd1']) + self.assertEqual( + activity_info, + file('client/db/implementation/%s/%s/data.blob/activity/activity.info' % (impl[:2], impl)).read()) def test_UsecaseOOB(self): privkey_path = '.sugar/default/owner.key' @@ -118,22 +134,13 @@ class NodeClientTest(tests.Test): os.unlink(privkey_path) os.unlink(pubkey_path) - deplist = self.cli(['GET', '/context/activity', 'cmd=deplist', 'repo=Fedora-14', '--anonymous', '--no-dbus', '--porcelain']) - assert not exists(privkey_path) - assert not exists(pubkey_path) - self.assertEqual( - sorted(['dep1.rpm', 'dep2.rpm', 'dep3.rpm']), - sorted([i.strip() for i in deplist.split('\n')])) - - self.cli(['PUT', '/context/context', '--anonymous', 'cmd=clone', 'nodeps=1', 'stability=stable', '-jd', '1']) - assert not exists(privkey_path) - assert not exists(pubkey_path) + self.cli(['PUT', '/context/context', '--no-dbus', '--anonymous', 'cmd=clone', '-jd', '1']) + self.cli(['PUT', '/context/context', '--no-dbus', '--anonymous', 'cmd=favorite', '-jd', 'true']) - self.cli(['PUT', '/context/context', '--anonymous', 'cmd=favorite', '-jd', 'true']) + assert exists('client/db/implementation/im/implementation/data.blob/activity/activity.info') + self.assertEqual(['clone', 'favorite'], json.load(file('client/db/context/co/context/layer'))['value']) assert not exists(privkey_path) assert not exists(pubkey_path) - assert exists('Activities/Chat.activity/activity/activity.info') - self.assertEqual(True, json.load(file('client/db/context/co/context/favorite'))['value']) def cli(self, cmd, stdin=None): cmd = ['sugar-network', '--local-root=client', '--ipc-port=5101', '--api-url=http://127.0.0.1:8100', '-DDD'] + cmd @@ -141,7 +148,7 @@ class NodeClientTest(tests.Test): if '--anonymous' not in cmd and not self.client_pid: self.client_pid = self.popen([join(src_root, 'sugar-network-client'), '-DDDF', 'start', - '--activity-dirs=client/Activities', '--local-root=client', + '--local-root=client', '--mounts-root=mnt', '--cachedir=tmp', '--ipc-port=5101', '--api-url=http://127.0.0.1:8100', ]) |