diff options
Diffstat (limited to 'tests/units/model/release.py')
-rwxr-xr-x | tests/units/model/release.py | 124 |
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() |