Changeset View
Changeset View
Standalone View
Standalone View
lilybuild/lilybuild/tests/helpers_test.py
| import unittest | import unittest | ||||
| import json | import json | ||||
| from lilybuild.ci_syntax.ci_file import CIFile | from lilybuild.ci_syntax.ci_file import CIFile | ||||
| from lilybuild.helpers import ( | from lilybuild.helpers import ( | ||||
| rsync_rules_from_artifacts, | rsync_rules_from_artifacts, | ||||
| normalize_base_url, | normalize_base_url, | ||||
| phorge_token_to_arcrc, | phorge_token_to_arcrc, | ||||
| ci_vars_to_cmds, | ci_vars_to_cmds, | ||||
| get_job_script, | get_job_script, | ||||
| DEFAULT_SCRIPT_HEADER, | DEFAULT_SCRIPT_HEADER, | ||||
| normalize_image, | normalize_image, | ||||
| get_service_aliases_from_name, | |||||
| normalize_services, | |||||
| ) | ) | ||||
| from lilybuild.tests.resources import get_res | from lilybuild.tests.resources import get_res | ||||
| class RsyncRulesTest(unittest.TestCase): | class RsyncRulesTest(unittest.TestCase): | ||||
| def test_empty(self): | def test_empty(self): | ||||
| self.assertEqual( | self.assertEqual( | ||||
| rsync_rules_from_artifacts({}), | rsync_rules_from_artifacts({}), | ||||
| ['--include', '*/', '--exclude', '*'] | ['--include', '*/', '--exclude', '*'] | ||||
| ▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | class NormalizeImageTest(unittest.TestCase): | ||||
| def test_str(self): | def test_str(self): | ||||
| res = normalize_image('alpine') | res = normalize_image('alpine') | ||||
| self.assertEqual(json.loads(res), {'name': 'alpine'}) | self.assertEqual(json.loads(res), {'name': 'alpine'}) | ||||
| def test_object(self): | def test_object(self): | ||||
| orig = {'name': 'alpine', 'entrypoint': ['/docker-run', '/bin/bb']} | orig = {'name': 'alpine', 'entrypoint': ['/docker-run', '/bin/bb']} | ||||
| res = normalize_image(orig) | res = normalize_image(orig) | ||||
| self.assertEqual(json.loads(res), orig) | self.assertEqual(json.loads(res), orig) | ||||
| class GetServiceAliasesFromNameTest(unittest.TestCase): | |||||
| def test_simple(self): | |||||
| self.assertEqual( | |||||
| get_service_aliases_from_name('mewmew:abcdefg'), | |||||
| ['mewmew']) | |||||
| self.assertEqual( | |||||
| get_service_aliases_from_name('mewmew/a:abcdefg'), | |||||
| ['mewmew__a', 'mewmew-a']) | |||||
| self.assertEqual( | |||||
| get_service_aliases_from_name('mew-mew/a:abc-defg'), | |||||
| ['mew-mew__a', 'mew-mew-a']) | |||||
| self.assertEqual( | |||||
| get_service_aliases_from_name('a.example/mew-mew/a:abc-defg'), | |||||
| ['a.example__mew-mew__a', 'a.example-mew-mew-a']) | |||||
| class NormalizeServicesTest(unittest.TestCase): | |||||
| def test_simple(self): | |||||
| self.assertEqual( | |||||
| json.loads(normalize_services([ | |||||
| 'mysql:latest', | |||||
| 'mysql:latest', | |||||
| ])), | |||||
| [{ 'name': 'mysql:latest', 'aliases': ['mysql'], 'entrypoint': None, 'command': None }, | |||||
| { 'name': 'mysql:latest', 'aliases': ['mysql'], 'entrypoint': None, 'command': None }], | |||||
| ) | |||||
| def test_own_alias(self): | |||||
| self.assertEqual( | |||||
| json.loads(normalize_services([ | |||||
| {'name': 'mysql:latest', 'alias': 'a, b c'}, | |||||
| 'mysql:latest', | |||||
| ])), | |||||
| [{ 'name': 'mysql:latest', 'aliases': ['a', 'b', 'c'], 'entrypoint': None, 'command': None }, | |||||
| { 'name': 'mysql:latest', 'aliases': ['mysql'], 'entrypoint': None, 'command': None }], | |||||
| ) | |||||
| def test_entrypoint_command(self): | |||||
| self.assertEqual( | |||||
| json.loads(normalize_services([ | |||||
| {'name': 'mysql:latest', 'entrypoint': 'a', 'command': 'b c'}, | |||||
| ])), | |||||
| [{ 'name': 'mysql:latest', 'aliases': ['mysql'], 'entrypoint': 'a', 'command': 'b c' }] | |||||
| ) | |||||
| self.assertEqual( | |||||
| json.loads(normalize_services([ | |||||
| {'name': 'mysql:latest', 'entrypoint': ['a', 'b'], 'command': ['b c', 'c d']}, | |||||
| ])), | |||||
| [{ 'name': 'mysql:latest', 'aliases': ['mysql'], 'entrypoint': ['a', 'b'], 'command': ['b c', 'c d'] }] | |||||
| ) | |||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||
| unittest.main() | unittest.main() | ||||