def test_parse_generated(self): maint = self.get_maintainer() pack = ProjectTemplate(name='bar', format=1, version='0.0.0', abi='pabi', urls=[Url('foo')], description='pdesc', maintainers=[maint], licenses=['BSD']) try: rootdir = tempfile.mkdtemp() file1 = os.path.join(rootdir, 'CMakeLists.txt') file2 = os.path.join(rootdir, PROJECT_MANIFEST_FILENAME) create_project_files(rootdir, pack, 'groovy') self.assertTrue(os.path.isfile(file1)) self.assertTrue(os.path.isfile(file2)) pack_result = parse_project(file2) self.assertEqual(pack.name, pack_result.name) self.assertEqual(pack.format, pack_result.format) self.assertEqual(pack.version, pack_result.version) self.assertEqual(pack.abi, pack_result.abi) self.assertEqual(pack.description, pack_result.description) self.assertEqual(pack.maintainers[0].name, pack_result.maintainers[0].name) self.assertEqual(pack.maintainers[0].email, pack_result.maintainers[0].email) self.assertEqual(pack.authors, pack_result.authors) self.assertEqual(pack.urls[0].url, pack_result.urls[0].url) self.assertEqual('website', pack_result.urls[0].type) self.assertEqual(pack.licenses, pack_result.licenses) self.assertEqual(pack.builddeps, pack_result.builddeps) self.assertEqual(pack.buildtooldeps, pack_result.buildtooldeps) self.assertEqual(pack.rundeps, pack_result.rundeps) self.assertEqual(pack.testdeps, pack_result.testdeps) self.assertEqual(pack.conflicts, pack_result.conflicts) self.assertEqual(pack.replaces, pack_result.replaces) self.assertEqual(pack.exports, pack_result.exports) rdict = generate_distutils_setup(project_xml_path=file2) self.assertEqual({'name': 'bar', 'maintainer': u'John Foo', 'maintainer_email': '*****@*****.**', 'description': 'pdesc', 'license': 'BSD', 'version': '0.0.0', 'author': '', 'url': 'foo'}, rdict) finally: shutil.rmtree(rootdir)
def test_create_project(self): maint = self.get_maintainer() pack = ProjectTemplate(name='bar', description='bar', format='1', version='0.0.0', abi='pabi', maintainers=[maint], licenses=['BSD']) try: rootdir = tempfile.mkdtemp() file1 = os.path.join(rootdir, 'CMakeLists.txt') file2 = os.path.join(rootdir, PROJECT_MANIFEST_FILENAME) create_project_files(rootdir, pack, 'alpine', {file1: ''}) self.assertTrue(os.path.isfile(file1)) self.assertTrue(os.path.isfile(file2)) finally: shutil.rmtree(rootdir)
def test_parse_generated_multi(self): # test with multiple attributes filled maint = self.get_maintainer() pack = ProjectTemplate(name='bar', format=1, version='0.0.0', abi='pabi', description='pdesc', maintainers=[maint, maint], authors=[maint, maint], licenses=['BSD', 'MIT'], urls=[Url('foo', 'bugtracker'), Url('bar')], builddeps=[Dependency('dep1')], buildtooldeps=[Dependency('dep2'), Dependency('dep3')], rundeps=[Dependency('dep4')], testdeps=[Dependency('dep5')], conflicts=[Dependency('dep6')], replaces=[Dependency('dep7'), Dependency('dep8')], exports=[Export('architecture_independent'), Export('meta_project')]) def assertEqualDependencies(deplist1, deplist2): if len(deplist1) != len(deplist1): return False for depx, depy in zip(deplist1, deplist2): for attr in ['name', 'lt', 'lte', 'eq', 'gte', 'gt']: if getattr(depx, attr) != getattr(depy, attr): return False return True try: rootdir = tempfile.mkdtemp() file1 = os.path.join(rootdir, 'CMakeLists.txt') file2 = os.path.join(rootdir, PROJECT_MANIFEST_FILENAME) create_project_files(rootdir, pack, 'alpine') self.assertTrue(os.path.isfile(file1)) self.assertTrue(os.path.isfile(file2)) pack_result = parse_project(file2) self.assertEqual(pack.name, pack_result.name) self.assertEqual(pack.format, pack_result.format) self.assertEqual(pack.version, pack_result.version) self.assertEqual(pack.abi, pack_result.abi) self.assertEqual(pack.description, pack_result.description) self.assertEqual(len(pack.maintainers), len(pack_result.maintainers)) self.assertEqual(len(pack.authors), len(pack_result.authors)) self.assertEqual(len(pack.urls), len(pack_result.urls)) self.assertEqual(pack.urls[0].url, pack_result.urls[0].url) self.assertEqual(pack.urls[0].type, pack_result.urls[0].type) self.assertEqual(pack.licenses, pack_result.licenses) self.assertTrue(assertEqualDependencies(pack.builddeps, pack_result.builddeps)) self.assertTrue(assertEqualDependencies(pack.builddeps, pack_result.builddeps)) self.assertTrue(assertEqualDependencies(pack.buildtooldeps, pack_result.buildtooldeps)) self.assertTrue(assertEqualDependencies(pack.rundeps, pack_result.rundeps)) self.assertTrue(assertEqualDependencies(pack.testdeps, pack_result.testdeps)) self.assertTrue(assertEqualDependencies(pack.conflicts, pack_result.conflicts)) self.assertTrue(assertEqualDependencies(pack.replaces, pack_result.replaces)) self.assertEqual(pack.exports[0].tagname, pack_result.exports[0].tagname) self.assertEqual(pack.exports[1].tagname, pack_result.exports[1].tagname) rdict = generate_distutils_setup(project_xml_path=file2) self.assertEqual({'name': 'bar', 'maintainer': u'John Foo <*****@*****.**>, John Foo <*****@*****.**>', 'description': 'pdesc', 'license': 'BSD, MIT', 'version': '0.0.0', 'author': u'John Foo <*****@*****.**>, John Foo <*****@*****.**>', 'url': 'bar'}, rdict) finally: shutil.rmtree(rootdir)