Python code refactorings.

This commit refactors the python code in diskimage_builder slightly.  This is
in preparation for a larger review that adds more functionality to the python
code, namely the ability to apply elements to the current system as opposed to
a chroot.  Further, the refactorings can stand on their own for better clarity.
They include:
 - renaming elements.py to element_dependencies.py.  Adds clarity about the
   purpose of this module.
 - updating other code for this rename.
 - move tests into a tests submodule.

Change-Id: I5519cc52398e442b24e33802bae42070d64b0c1d
This commit is contained in:
James Slagle 2013-11-12 09:58:00 -05:00
parent a59797ff24
commit dee69b1810
5 changed files with 12 additions and 11 deletions

View File

@ -17,7 +17,7 @@
import os
import sys
from diskimage_builder.elements import main
from diskimage_builder.element_dependencies import main
sys.exit(main(sys.argv))

View File

View File

@ -18,7 +18,7 @@ import os
import fixtures
import testtools
from diskimage_builder import elements
from diskimage_builder import element_dependencies
data_dir = os.path.abspath(
os.path.join(os.path.dirname(__file__), 'test-elements'))
@ -47,34 +47,35 @@ class TestElementDeps(testtools.TestCase):
_populate_element(self.element_dir, 'circular2', ['circular1'])
def test_non_transitive_deps(self):
result = elements.expand_dependencies(
result = element_dependencies.expand_dependencies(
['requires-foo'],
elements_dir=self.element_dir)
self.assertEqual(set(['requires-foo', 'foo']), result)
def test_missing_deps(self):
self.assertRaises(SystemExit, elements.expand_dependencies, ['fake'],
self.assertRaises(SystemExit,
element_dependencies.expand_dependencies, ['fake'],
self.element_dir)
def test_transitive_deps(self):
result = elements.expand_dependencies(
result = element_dependencies.expand_dependencies(
['requires-requires-foo'], elements_dir=self.element_dir)
self.assertEqual(set(['requires-requires-foo',
'requires-foo',
'foo']), result)
def test_no_deps(self):
result = elements.expand_dependencies(
result = element_dependencies.expand_dependencies(
['foo'], elements_dir=self.element_dir)
self.assertEqual(set(['foo']), result)
def test_self(self):
result = elements.expand_dependencies(
result = element_dependencies.expand_dependencies(
['self'], elements_dir=self.element_dir)
self.assertEqual(set(['self']), result)
def test_circular(self):
result = elements.expand_dependencies(
result = element_dependencies.expand_dependencies(
['circular1'], elements_dir=self.element_dir)
self.assertEqual(set(['circular1', 'circular2']), result)
@ -83,8 +84,8 @@ class TestElements(testtools.TestCase):
def test_depends_on_env(self):
self.useFixture(
fixtures.EnvironmentVariable('ELEMENTS_PATH', '/foo/bar'))
self.assertEqual('/foo/bar', elements.get_elements_dir())
self.assertEqual('/foo/bar', element_dependencies.get_elements_dir())
def test_env_not_set(self):
self.useFixture(fixtures.EnvironmentVariable('ELEMENTS_PATH', ''))
self.assertRaises(Exception, elements.get_elements_dir, ())
self.assertRaises(Exception, element_dependencies.get_elements_dir, ())

View File

@ -30,7 +30,7 @@ def load_tests(loader, tests, pattern):
# http://bugs.python.org/issue11218
pattern = "test*.py"
this_dir = os.path.dirname(__file__)
elements_dir = os.path.join(this_dir, "..", "elements")
elements_dir = os.path.join(this_dir, "..", "..", "elements")
# Make a fake elements top level package, as discovery doesn't let us
# override the python path.
package = StubPackage()