Quellcode durchsuchen

Added a new "test" command for setup.py so ``python setup.py test`` works.

Ask Solem vor 16 Jahren
Ursprung
Commit
fe343b05cf
1 geänderte Dateien mit 30 neuen und 2 gelöschten Zeilen
  1. 30 2
      setup.py

+ 30 - 2
setup.py

@@ -2,16 +2,43 @@
 # -*- coding: utf-8 -*-
 import codecs
 import sys
+import os
 
 try:
-    from setuptools import setup, find_packages
+    from setuptools import setup, find_packages, Command
 except ImportError:
     from ez_setup import use_setuptools
     use_setuptools()
-    from setuptools import setup, find_packages
+    from setuptools import setup, find_packages, Command
 
 import celery
 
+class RunTests(Command):
+    description = "Run the django test suite from the testproj dir."
+
+    user_options = []
+
+    def initialize_options(self):
+        pass
+
+    def finalize_options(self):
+        pass
+
+    def run(self):
+        this_dir = os.getcwd()
+        testproj_dir = os.path.join(this_dir, "testproj")
+        os.chdir(testproj_dir)
+        sys.path.append(testproj_dir)
+        from django.core.management import execute_manager
+        os.environ["DJANGO_SETTINGS_MODULE"] = os.environ.get(
+                        "DJANGO_SETTINGS_MODULE", "settings")
+        settings_file = os.environ["DJANGO_SETTINGS_MODULE"]
+        settings_mod = __import__(settings_file, {}, {}, [''])
+        execute_manager(settings_mod, argv=[
+            __file__, "test"])
+        os.chdir(this_dir)
+
+
 install_requires = ["carrot", "django"]
 py_version_info = sys.version_info
 py_major_version = py_version_info[0]
@@ -37,6 +64,7 @@ setup(
         'carrot',
         'django',
     ],
+    cmdclass = {"test": RunTests},
     classifiers=[
         "Development Status :: 3 - Alpha",
         "Framework :: Django",