def test_calculate_depends_for_topological_order(self): def create_mock(name, rundeps): m = Mock() m.name = name m.builddeps = [] m.buildtooldeps = [] m.rundeps = rundeps m.exports = [] return m mockproject1 = _ProjectDecorator(create_mock('n1', []), 'p1') mockproject2 = _ProjectDecorator(create_mock('n2', []), 'p2') mockproject3 = _ProjectDecorator(create_mock('n3', []), 'p3') mockproject4 = _ProjectDecorator(create_mock('n4', []), 'p4') mockproject5 = _ProjectDecorator(create_mock('n5', [mockproject4]), 'p5') mockproject6 = _ProjectDecorator(create_mock('n6', [mockproject5]), 'p6') mockproject7 = _ProjectDecorator(create_mock('n7', []), 'p7') mockproject = Mock() mockproject.builddeps = [mockproject1, mockproject2] mockproject.buildtooldeps = [mockproject3, mockproject6] mockproject.rundeps = [mockproject7] mockproject.exports = [] pd = _ProjectDecorator(mockproject, 'foo/bar') # 2 and 3 as external dependencies projects = {mockproject1.name: mockproject1, mockproject4.name: mockproject4, mockproject5.name: mockproject5, mockproject6.name: mockproject6} pd.calculate_depends_for_topological_order(projects) self.assertEqual(set([mockproject1.name, mockproject4.name, mockproject5.name, mockproject6.name]), pd.depends_for_topological_order)
def test_project_decorator_init(self): mockproject = Mock() mockexport = Mock() mockexport.tagname = 'message_generator' mockexport.content = 'foolang' mockproject.exports = [mockexport] pd = _ProjectDecorator(mockproject, 'foo/bar') self.assertEqual(mockproject.name, pd.name) self.assertEqual('foo/bar', pd.path) self.assertFalse(pd.is_metaproject) self.assertEqual(mockexport.content, pd.message_generator) self.assertIsNotNone(str(pd))