]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - setup.py
sftpd.py: switch from using bare asserts to assertutil.
[tahoe-lafs/tahoe-lafs.git] / setup.py
index a9ed364952296ab1ff0f1c2eb3511ea5419a4b5c..3501777080d425f7df57cb81e4b784361e0cf557 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,16 +1,16 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
-u"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.4.4 and 2.7.x inclusive."
+import sys; assert sys.version_info < (3,), ur"Tahoe-LAFS does not run under Python 3. Please use a version of Python between 2.6 and 2.7.x inclusive."
 
 # Tahoe-LAFS -- secure, distributed storage grid
 #
-# Copyright © 2008-2011 Allmydata, Inc.
+# Copyright © 2006-2012 The Tahoe-LAFS Software Foundation
 #
 # This file is part of Tahoe-LAFS.
 #
 # See the docs/about.rst file for licensing information.
 
-import glob, os, stat, subprocess, sys, re
+import glob, os, stat, subprocess, re
 
 ##### sys.path management
 
@@ -49,7 +49,7 @@ except EnvironmentError:
     open(APPNAMEFILE, "w").write(APPNAMEFILESTR)
 else:
     if curappnamefilestr.strip() != APPNAMEFILESTR:
-        print "Error -- this setup.py file is configured with the 'application name' to be '%s', but there is already a file in place in '%s' which contains the contents '%s'.  If the file is wrong, please remove it and setup.py will regenerate it and write '%s' into it." % (APPNAME, APPNAMEFILE, curappnamefilestr, APPNAMEFILESTR)
+        print("Error -- this setup.py file is configured with the 'application name' to be '%s', but there is already a file in place in '%s' which contains the contents '%s'.  If the file is wrong, please remove it and setup.py will regenerate it and write '%s' into it." % (APPNAME, APPNAMEFILE, curappnamefilestr, APPNAMEFILESTR))
         sys.exit(-1)
 
 # setuptools/zetuptoolz looks in __main__.__requires__ for a list of
@@ -167,7 +167,9 @@ tests_require=[]
 class Trial(Command):
     description = "run trial (use 'bin%stahoe debug trial' for the full set of trial options)" % (os.sep,)
     # This is just a subset of the most useful options, for compatibility.
-    user_options = [ ("rterrors", "e", "Print out tracebacks as soon as they occur."),
+    user_options = [ ("no-rterrors", None, "Don't print out tracebacks as they occur."),
+                     ("rterrors", "e", "Print out tracebacks as they occur (default, so ignored)."),
+                     ("until-failure", "u", "Repeat a test (specified by -s) until it fails."),
                      ("reporter=", None, "The reporter to use for this test run."),
                      ("suite=", "s", "Specify the test suite."),
                      ("quiet", None, "Don't display version numbers and paths of Tahoe dependencies."),
@@ -175,6 +177,8 @@ class Trial(Command):
 
     def initialize_options(self):
         self.rterrors = False
+        self.no_rterrors = False
+        self.until_failure = False
         self.reporter = None
         self.suite = "allmydata"
         self.quiet = False
@@ -187,8 +191,12 @@ class Trial(Command):
         if not self.quiet:
             args.append('--version-and-path')
         args += ['debug', 'trial']
-        if self.rterrors:
+        if self.rterrors and self.no_rterrors:
+            raise AssertionError("--rterrors and --no-rterrors conflict.")
+        if not self.no_rterrors:
             args.append('--rterrors')
+        if self.until_failure:
+            args.append('--until-failure')
         if self.reporter:
             args.append('--reporter=' + self.reporter)
         if self.suite:
@@ -271,15 +279,15 @@ def run_command(args, cwd=None, verbose=False):
     try:
         # remember shell=False, so use git.cmd on windows, not just git
         p = subprocess.Popen(args, stdout=subprocess.PIPE, cwd=cwd)
-    except EnvironmentError, e:
+    except EnvironmentError as e:  # if this gives a SyntaxError, note that Tahoe-LAFS requires Python 2.6+
         if verbose:
-            print "unable to run %s" % args[0]
-            print e
+            print("unable to run %s" % args[0])
+            print(e)
         return None
     stdout = p.communicate()[0].strip()
     if p.returncode != 0:
         if verbose:
-            print "unable to run %s (error)" % args[0]
+            print("unable to run %s (error)" % args[0])
         return None
     return stdout
 
@@ -318,7 +326,7 @@ def versions_from_git(tag_prefix, verbose=False):
         return {}
     if not stdout.startswith(tag_prefix):
         if verbose:
-            print "tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix)
+            print("tag '%s' doesn't start with prefix '%s'" % (stdout, tag_prefix))
         return {}
     version = stdout[len(tag_prefix):]
     pieces = version.split("-")
@@ -351,7 +359,7 @@ class UpdateVersion(Command):
         elif os.path.isdir(os.path.join(basedir, ".git")):
             verstr = self.try_from_git(target)
         else:
-            print "no version-control data found, leaving _version.py alone"
+            print("no version-control data found, leaving _version.py alone")
             return
         if verstr:
             self.distribution.metadata.version = verstr
@@ -376,7 +384,7 @@ class UpdateVersion(Command):
                           "normalized": versions["normalized"],
                           "full": versions["full"] })
                 f.close()
-                print "git-version: wrote '%s' into '%s'" % (versions["version"], fn)
+                print("git-version: wrote '%s' into '%s'" % (versions["version"], fn))
         return versions.get("normalized", None)