Test import of all modules.
authorZac Medico <zmedico@gentoo.org>
Sat, 29 Jan 2011 07:54:50 +0000 (23:54 -0800)
committerZac Medico <zmedico@gentoo.org>
Sat, 29 Jan 2011 07:54:50 +0000 (23:54 -0800)
pym/portage/_selinux.py
pym/portage/tests/lazyimport/test_lazy_import_portage_baseline.py
pym/portage/tests/lint/test_import_modules.py [new file with mode: 0644]

index d86dd95944e92f8c942655b7199235dd37b1d103..9470978c4e404e93915b25f0d81f644dca63e23d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # Don't use the unicode-wrapped os and shutil modules here since
@@ -11,8 +11,8 @@ from portage import _encodings
 from portage import _unicode_decode
 from portage import _unicode_encode
 from portage.localization import _
-
-import selinux
+portage.proxy.lazyimport.lazyimport(globals(),
+       'selinux')
 
 def copyfile(src, dest):
        src = _unicode_encode(src, encoding=_encodings['fs'], errors='strict')
index 7c3b2f99a5c47fcd295d5d577f240879ed97d95f..28cf28436fffe49843e049fb17ca1e559126ec81 100644 (file)
@@ -19,6 +19,7 @@ class LazyImportPortageBaselineTestCase(TestCase):
                'portage.const', 'portage.localization',
                'portage.proxy', 'portage.proxy.lazyimport',
                'portage.proxy.objectproxy', 'portage._ensure_encodings',
+               'portage._selinux',
        ])
 
        _baseline_import_cmd = [portage._python_interpreter, '-c', '''
diff --git a/pym/portage/tests/lint/test_import_modules.py b/pym/portage/tests/lint/test_import_modules.py
new file mode 100644 (file)
index 0000000..cee579a
--- /dev/null
@@ -0,0 +1,35 @@
+# Copyright 2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from portage.const import PORTAGE_PYM_PATH
+from portage.tests import TestCase
+from portage import os
+from portage import _encodings
+from portage import _unicode_decode
+
+class ImportModulesTestCase(TestCase):
+
+       def testImportModules(self):
+               for mod in self._list_modules(PORTAGE_PYM_PATH):
+                       __import__(mod)
+
+       def _list_modules(self, base_dir):
+               all_modules = []
+               for parent, dirs, files in os.walk(base_dir):
+                       parent = _unicode_decode(parent,
+                               encoding=_encodings['fs'], errors='strict')
+                       parent_mod = parent[len(PORTAGE_PYM_PATH)+1:]
+                       parent_mod = parent_mod.replace("/", ".")
+                       for x in files:
+                               x = _unicode_decode(x,
+                                       encoding=_encodings['fs'], errors='strict')
+                               if x[-3:] != '.py':
+                                       continue
+                               x = x[:-3]
+                               if x[-8:] == '__init__':
+                                       x = parent_mod
+                               else:
+                                       x = parent_mod + "." + x
+                               all_modules.append(x)
+
+               return all_modules