Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/integration/node_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/node_client.py')
-rwxr-xr-xtests/integration/node_client.py151
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',
])