Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/units/model/release.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/model/release.py')
-rwxr-xr-xtests/units/model/release.py124
1 files changed, 124 insertions, 0 deletions
diff --git a/tests/units/model/release.py b/tests/units/model/release.py
new file mode 100755
index 0000000..2f4bfb1
--- /dev/null
+++ b/tests/units/model/release.py
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+# sugar-lint: disable
+
+import os
+
+import xapian
+
+from __init__ import tests
+
+from sugar_network import db
+from sugar_network.model import release
+from sugar_network.model.release import _fmt_version, Release
+from sugar_network.client import IPCConnection
+from sugar_network.toolkit import http, coroutine
+
+
+class ReleaseTest(tests.Test):
+
+ def test_fmt_version(self):
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''5''000')),
+ _fmt_version('1'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0002''0000''5''000')),
+ _fmt_version('1.2'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0020''0300''5''000')),
+ _fmt_version('1.20.300'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0020''0300''5''000')),
+ _fmt_version('1.20.300.4444'))
+
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''9999''0000''5''000')),
+ _fmt_version('10001.99999.10000'))
+
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''3''000')),
+ _fmt_version('1-pre'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''4''000')),
+ _fmt_version('1-rc'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''5''000')),
+ _fmt_version('1-'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''6''000')),
+ _fmt_version('1-r'))
+
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''3''001')),
+ _fmt_version('1-pre1'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''4''002')),
+ _fmt_version('1-rc2'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''6''003')),
+ _fmt_version('1-r3'))
+
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''6''000')),
+ _fmt_version('1-r-2-3'))
+ self.assertEqual(
+ xapian.sortable_serialise(eval('1''0000''0000''6''001')),
+ _fmt_version('1-r1.2-3'))
+
+ def test_OriginalAuthor(self):
+ self.start_online_client()
+ client = IPCConnection()
+
+ self.node_volume['context'].create({
+ 'guid': 'context',
+ 'type': 'book',
+ 'title': 'title',
+ 'summary': 'summary',
+ 'description': 'description',
+ 'author': {'fake': None},
+ })
+
+ guid = client.post(['release'], {
+ 'context': 'context',
+ 'license': 'GPLv3+',
+ 'version': '1',
+ 'stability': 'stable',
+ 'notes': '',
+ })
+ self.assertEqual([], self.node_volume['release'].get(guid)['layer'])
+
+ guid = client.post(['release'], {
+ 'context': 'context',
+ 'license': 'GPLv3+',
+ 'version': '1',
+ 'stability': 'stable',
+ 'notes': '',
+ 'layer': ['foo'],
+ })
+ self.assertEqual(['foo'], self.node_volume['release'].get(guid)['layer'])
+
+ self.node_volume['context'].update('context', {'author': {tests.UID: None}})
+
+ guid = client.post(['release'], {
+ 'context': 'context',
+ 'license': 'GPLv3+',
+ 'version': '1',
+ 'stability': 'stable',
+ 'notes': '',
+ })
+ self.assertEqual(['origin'], self.node_volume['release'].get(guid)['layer'])
+
+ guid = client.post(['release'], {
+ 'context': 'context',
+ 'license': 'GPLv3+',
+ 'version': '1',
+ 'stability': 'stable',
+ 'notes': '',
+ 'layer': ['foo'],
+ })
+ self.assertEqual(
+ sorted(['foo', 'origin']),
+ sorted(self.node_volume['release'].get(guid)['layer']))
+
+
+if __name__ == '__main__':
+ tests.main()