import unittest import os import shutil from importer import separate_imports, Importer d = os.path.realpath('') + '/' class TestImporter(unittest.TestCase): def setUp(self): self.none = 'no imports' self.single = 'import bar' self.multiple = 'import bar, baz\nfoobar' self.multiline = 'import bar, \\\n baz\nfoobarbaz' if os.path.exists('foo'): shutil.rmtree('foo') os.mkdir('foo') for name in ('none', 'single', 'multiple', 'multiline'): f = open('foo/' + name, 'w') f.write(self.__getattribute__(name)) f.close() self.importer = Importer('foo') def tearDown(self): shutil.rmtree('foo') def test___init__(self): self.assertEqual(self.importer.root, d + 'foo/') self.assertEqual(self.importer.extension, '') def test___init___extension(self): self.assertEqual(Importer('foo', extension='txt').extension, '.txt') def test_separate_imports(self): self.assertEqual(separate_imports(self.none), ([], self.none)) self.assertEqual(separate_imports(self.single), (['bar'], '')) self.assertEqual(separate_imports(self.multiple), (['bar', 'baz'], 'foobar')) self.assertEqual(separate_imports(self.multiline), (['bar', 'baz'], 'foobarbaz')) def test_create_full_paths_simple(self): self.assertEqual(self.importer.create_full_paths([]), []) self.assertEqual(self.importer.create_full_paths(['none']), [d + 'foo/none']) def test_create_full_paths_alias(self): self.importer.set_alias('bar', 'none') self.assertEqual(self.importer.create_full_paths(['@bar']), [d + 'foo/none']) self.assertRaises(ValueError, self.importer.create_full_paths, ['@foo']) def test_create_full_paths_relative_file(self): importer = Importer('.') self.assertEqual(importer.create_full_paths(['none'], d + 'foo/single'), [d + 'foo/none'])