test_importer.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import unittest
  2. import os
  3. import shutil
  4. from importer import separate_imports, Importer
  5. d = os.path.realpath('') + '/'
  6. class TestImporter(unittest.TestCase):
  7. def setUp(self):
  8. self.none = 'no imports'
  9. self.single = 'import bar'
  10. self.multiple = 'import bar, baz\nfoobar'
  11. self.multiline = 'import bar, \\\n baz\nfoobarbaz'
  12. if os.path.exists('foo'):
  13. shutil.rmtree('foo')
  14. os.mkdir('foo')
  15. for name in ('none', 'single', 'multiple', 'multiline'):
  16. f = open('foo/' + name, 'w')
  17. f.write(self.__getattribute__(name))
  18. f.close()
  19. self.importer = Importer(root='foo/')
  20. def tearDown(self):
  21. shutil.rmtree('foo')
  22. def test___init__(self):
  23. self.assertEqual(self.importer.root, d + 'foo/')
  24. self.assertEqual(self.importer.extension, '')
  25. def test___init___extension(self):
  26. self.assertEqual(Importer(root='foo/', extension='txt').extension, '.txt')
  27. def test_separate_imports(self):
  28. self.assertEqual(separate_imports(self.none), ([], self.none))
  29. self.assertEqual(separate_imports(self.single), (['bar'], ''))
  30. self.assertEqual(separate_imports(self.multiple),
  31. (['bar', 'baz'], 'foobar'))
  32. self.assertEqual(separate_imports(self.multiline),
  33. (['bar', 'baz'], 'foobarbaz'))
  34. def test_create_full_paths_simple(self):
  35. self.assertEqual(self.importer.create_full_paths([]), [])
  36. self.assertEqual(self.importer.create_full_paths(['none']),
  37. [d + 'foo/none'])
  38. def test_create_full_paths_alias(self):
  39. self.importer.set_alias('bar', 'none')
  40. self.assertEqual(self.importer.create_full_paths(['.bar']),
  41. [d + 'foo/none'])
  42. self.assertRaises(ValueError, self.importer.create_full_paths,
  43. ['.foo'])
  44. def test_create_full_paths_relative_file(self):
  45. importer = Importer('')
  46. self.assertEqual(importer.create_full_paths(['none'], d + 'foo/single'),
  47. [d + 'foo/none'])