def test_files(self):
        expected = ['./tests/example/stat_test_example.c']
        expected += ['../unity/unity.c'] + ['../lib/src/stat.c', '../lib/src/stat_rng.c']
        expected += getHeadersFromDirectory("../unity")
        expected += getHeadersFromDirectory("../lib/inc")
        expected += [os.path.join(attributes.DUMMIES_DIRECTORY, fileName)
                     for fileName in ('first_dummy.h', 'second_dummy.h', 'duplicated.h')]

        project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH)

        actual = list(project.files())
        self.assertSameItems(expected, actual)
class TestSourceInsightWriter(FileBasedTestCase):
    def setUp(self):
        if not os.path.isdir(attributes.IDE_DIRECTORY):
            os.mkdir(attributes.IDE_DIRECTORY)
        self.contents = StatMakefileProject(TEST_MAKEFILE)
        self.writer = SourceInsightWriter(self.contents)

    def tearDown(self):
        if os.path.isdir(attributes.IDE_DIRECTORY):
            rmtree(attributes.IDE_DIRECTORY)

    def test_tokenCreation(self):
        writer = self.writer
        self.assertEqual(None, writer.createRootToken())
        self.assertEqual(None, writer.createDirectoryToken('Some-Name', None))

    def test_write(self):
        self.writer.write()

        actual = [
            fn.split('.')[0] for fn in os.listdir(TEST_WORKSPACE_PATH)
            if fn not in ['si_filelist.txt']
        ]
        expected = [TEST_TARGET_NAME] * len(actual)
        self.assertEqual(expected, actual)
        projectFile = '{path}/{fileName}.siproj'.format(
            path=TEST_WORKSPACE_PATH, fileName=TEST_TARGET_NAME)
        self.assertTrue(os.path.isfile(projectFile))
        self.assertEqual(TEST_MAKEFILE,
                         readTextFileAtOnce(SOURCE_INSIGHT_FILE_LIST))

    def test_addFile(self):
        for filename in self.contents.files():
            self.writer.addFile(filename, None)
        self.writer.write()

        expected = '\n'.join([TEST_MAKEFILE] +
                             [filename for filename in self.contents.files()])
        self.assertEqual(expected,
                         readTextFileAtOnce(SOURCE_INSIGHT_FILE_LIST))

    def test_updatedWrite(self):
        self.writer.write()

        self.writer.addFile(SOURCE_INSIGHT_FILE_LIST, None)
        self.writer.write()

        expected = '\n'.join([TEST_MAKEFILE, SOURCE_INSIGHT_FILE_LIST])
        self.assertEqual(expected,
                         readTextFileAtOnce(SOURCE_INSIGHT_FILE_LIST))
 def test_projectInitialization(self):
     project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH)
     makFile = StatMakefile(self.PROJECT_EXAMPLE_PATH)
     self.assertEqual(self.PROJECT_EXAMPLE_PATH, project.makefile)
     self.assertEqual(self.PROJECT_EXAMPLE_NAME, project.name)
     self.assertEqual(makFile[StatMakefile.NAME], project.outputName)
     self.assertSameItems([makFile[key] for key in makFile], [project[key] for key in project])
    def test_tree(self):
        expected = ([],
                    {'..':
                         ([],
                          {'unity':
                                   (['../unity/unity.c'] + getHeadersFromDirectory('../unity'), {}),
                           'lib':
                               ([],
                                {'src': (['../lib/src/stat.c', '../lib/src/stat_rng.c'], {}),
                                 'inc': (getHeadersFromDirectory('../lib/inc'), {}),
                                 }
                                )
                           }),
                     'dummies':
                         ([os.path.join(attributes.DUMMIES_DIRECTORY, _file)
                           for _file in ('first_dummy.h', 'second_dummy.h', 'duplicated.h')], {}),
                     'tests':
                         ([],
                          {'example':
                               (['tests/example/stat_test_example.c'], {}),
                           }),
                     }) # noqa

        project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH)
        self.__verifyTree(expected, project.tree)
Пример #5
0
 def mockCommonObjects(self):
     self.tools = Mock(spec=MsvsTools)
     self.year = PropertyMock(return_value=TEST_YEAR)
     type(self.tools).path = PropertyMock(return_value=TEST_TOOL_PATH)
     type(self.tools).devBatchFile = PropertyMock(
         return_value=TEST_DEV_BATCH_FILE)
     type(
         self.tools).nmakeFilePath = PropertyMock(return_value='wrong_path')
     type(self.tools).versionId = PropertyMock(return_value=TEST_VERSION)
     type(self.tools).year = self.year
     type(self.tools).solutionFormat = PropertyMock(
         return_value=TEST_SOLUTION_FORMAT)
     self.makefileProject = StatMakefileProject(TEST_MAKEFILE)
Пример #6
0
    def setUp(self):
        self.contents = StatMakefileProject(TEST_MAKEFILE)
        self.testWriter = IdeTestWriter('TEST', self.contents)
        self.statMakefileProject = self.patch(CUT,
                                              StatMakefileProject.__name__,
                                              autospec=True,
                                              return_value=self.contents)
        self.ideWriterCreate = self.patch(CUT,
                                          'IdeWriter.create',
                                          return_value=self.testWriter)
        self.mkdir = self.patch(CUT, 'mkdir')

        self.writer = IdeWorkspaceWriter(TEST_IDE_NAME, TEST_MAKEFILE)
 def setUp(self):
     self._doBeforeSetup()
     self.patch(CUT, isWindows.__name__, return_value=self.isOnWindows)
     self.maxDiff = None
     if not os.path.isdir(attributes.IDE_DIRECTORY):
         os.mkdir(attributes.IDE_DIRECTORY)
     remove(TEST_IDE_DIRECTORY)
     self.makefileProject = StatMakefileProject(TEST_MAKEFILE)
     self.writer = VsCodeWriter(self.makefileProject)
     namespace = "ide_{0}".format(TEST_TARGET_NAME)
     command = formatMakeCommand(TEST_MAKEFILE, STAT_NAMESPACE=namespace)
     self.makeTool = command[0]
     self.makeArguments = command[1:]
     self.foldersInitConfig = [{
         "name": TEST_IDE_DIRECTORY,
         "path": os.path.abspath(TEST_IDE_DIRECTORY)
     }]
 def setUp(self):
     if not os.path.isdir(attributes.IDE_DIRECTORY):
         os.mkdir(attributes.IDE_DIRECTORY)
     self.contents = StatMakefileProject(TEST_MAKEFILE)
     self.writer = SourceInsightWriter(self.contents)
 def test_headerDuplicationConflictIsResolvedByOrderOfInclusion(self):
     project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH)
     self.assertNotIn('duplicated.h', project.tree.files)
 def test_definitionsProperty(self):
     expected = ['PROJECT_EXAMPLE', 'DEFINITION_VALUED=7', 'DEFINITION_SIMPLE']
     project = StatMakefileProject(self.PROJECT_EXAMPLE_PATH)
     self.assertSameItems(expected, project.definitions)
Пример #11
0
 def __init__(self, ideName, makeFile):
     self.__contents = StatMakefileProject(makeFile)
     self.__writer = IdeWriter.create(ideName, self.__contents)