예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
    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)