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)
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)
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)
def __init__(self, ideName, makeFile): self.__contents = StatMakefileProject(makeFile) self.__writer = IdeWriter.create(ideName, self.__contents)