diff --git a/django/utils/archive.py b/django/utils/archive.py index ea948fe44f..9c2d4ac01b 100644 --- a/django/utils/archive.py +++ b/django/utils/archive.py @@ -141,7 +141,7 @@ class TarArchive(BaseArchive): name = self.split_leading_dir(name)[1] filename = os.path.join(to_path, name) if member.isdir(): - if not os.path.exists(filename): + if filename and not os.path.exists(filename): os.makedirs(filename) else: try: @@ -153,7 +153,7 @@ class TarArchive(BaseArchive): (name, member.name, sys.exc_info()[1])) else: dirname = os.path.dirname(filename) - if not os.path.exists(dirname): + if dirname and not os.path.exists(dirname): os.makedirs(dirname) with open(filename, 'wb') as outfile: shutil.copyfileobj(extracted, outfile) diff --git a/tests/regressiontests/utils/crypto.py b/tests/regressiontests/utils/crypto.py index f025ffa790..5c861c6357 100644 --- a/tests/regressiontests/utils/crypto.py +++ b/tests/regressiontests/utils/crypto.py @@ -126,8 +126,8 @@ class TestUtilsCryptoPBKDF2(unittest.TestCase): times as long as running with 1 iteration. """ n1, n2 = 100, 10000 - elapsed = lambda f: timeit.timeit(f, number=1) - t1 = elapsed(lambda: pbkdf2("password", "salt", iterations=n1)) - t2 = elapsed(lambda: pbkdf2("password", "salt", iterations=n2)) + elapsed = lambda f: timeit.Timer(f, 'from django.utils.crypto import pbkdf2').timeit(number=1) + t1 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n1) + t2 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n2) measured_scale_exponent = math.log(t2 / t1, n2 / n1) self.assertLess(measured_scale_exponent, 1.1)