[Python-modules-commits] [logilab-common] 01/04: Import logilab-common_1.2.0.orig.tar.gz

Sandro Tosi morph at moszumanska.debian.org
Wed Apr 20 18:45:47 UTC 2016


This is an automated email from the git hooks/post-receive script.

morph pushed a commit to branch master
in repository logilab-common.

commit 61c281bf15d8e8c0ceaa914d0b4bd025a0223e69
Author: Sandro Tosi <morph at debian.org>
Date:   Wed Apr 20 19:40:41 2016 +0100

    Import logilab-common_1.2.0.orig.tar.gz
---
 ChangeLog                        |  9 ++++++
 PKG-INFO                         |  2 +-
 __pkginfo__.py                   |  2 +-
 logilab/common/__init__.py       |  2 +-
 logilab/common/configuration.py  |  2 +-
 logilab/common/date.py           |  2 +-
 logilab/common/pytest.py         | 59 +---------------------------------------
 logilab/common/testlib.py        | 38 ++++++++++++++++++++++++--
 logilab_common.egg-info/PKG-INFO |  2 +-
 test/unittest_date.py            | 14 ++++++++--
 test/unittest_pytest.py          | 15 ----------
 11 files changed, 63 insertions(+), 84 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9a47911..8c87d34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
 ChangeLog for logilab.common
 ============================
 
+2016-03-15  -- 1.2.0
+
+    * pytest: TraceController class, pause_tracing and resume_tracing
+      functions, deprecated from 0.63.1, got removed.  The nocoverage
+      and pause_trace utilities are now available from the testlib
+      module rather than pytest.
+
+    * date: datetime2ticks uses the milliseconds from the datetime objects
+
 2015-10-12  --  1.1.0
     * configuration: have a stable order for sections (#298658)
 
diff --git a/PKG-INFO b/PKG-INFO
index 6101c77..3299e17 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: logilab-common
-Version: 1.1.0
+Version: 1.2.0
 Summary: collection of low-level Python packages and modules used by Logilab projects
 Home-page: http://www.logilab.org/project/logilab-common
 Author: Logilab
diff --git a/__pkginfo__.py b/__pkginfo__.py
index 8b50d7d..b91f0ac 100644
--- a/__pkginfo__.py
+++ b/__pkginfo__.py
@@ -25,7 +25,7 @@ modname = 'common'
 subpackage_of = 'logilab'
 subpackage_master = True
 
-numversion = (1, 1, 0)
+numversion = (1, 2, 0)
 version = '.'.join([str(num) for num in numversion])
 
 license = 'LGPL' # 2.1 or later
diff --git a/logilab/common/__init__.py b/logilab/common/__init__.py
index fc01e4d..796831a 100644
--- a/logilab/common/__init__.py
+++ b/logilab/common/__init__.py
@@ -38,7 +38,7 @@ __pkginfo__.__package__ = __name__
 __pkginfo__.version = __version__
 sys.modules['logilab.common.__pkginfo__'] = __pkginfo__
 
-STD_BLACKLIST = ('CVS', '.svn', '.hg', 'debian', 'dist', 'build')
+STD_BLACKLIST = ('CVS', '.svn', '.hg', '.git', '.tox', 'debian', 'dist', 'build')
 
 IGNORED_EXTENSIONS = ('.pyc', '.pyo', '.elc', '~', '.swp', '.orig')
 
diff --git a/logilab/common/configuration.py b/logilab/common/configuration.py
index 38af31d..b7f364b 100644
--- a/logilab/common/configuration.py
+++ b/logilab/common/configuration.py
@@ -635,7 +635,7 @@ class OptionsManagerMixIn(object):
             parser = self.cfgfile_parser
             parser.read([config_file])
             # normalize sections'title
-            for sect, values in parser._sections.items():
+            for sect, values in list(parser._sections.items()):
                 if not sect.isupper() and values:
                     parser._sections[sect.upper()] = values
         elif not self.quiet:
diff --git a/logilab/common/date.py b/logilab/common/date.py
index a093a8a..37e371b 100644
--- a/logilab/common/date.py
+++ b/logilab/common/date.py
@@ -237,7 +237,7 @@ def todatetime(somedate):
     return datetime(somedate.year, somedate.month, somedate.day)
 
 def datetime2ticks(somedate):
-    return timegm(somedate.timetuple()) * 1000
+    return timegm(somedate.timetuple()) * 1000 + int(somedate.microsecond / 1000)
 
 def ticks2datetime(ticks):
     miliseconds, microseconds = divmod(ticks, 1000)
diff --git a/logilab/common/pytest.py b/logilab/common/pytest.py
index c1dca63..11647b7 100644
--- a/logilab/common/pytest.py
+++ b/logilab/common/pytest.py
@@ -121,7 +121,6 @@ import types
 import inspect
 import traceback
 from inspect import isgeneratorfunction, isclass
-from contextlib import contextmanager
 from random import shuffle
 from itertools import dropwhile
 
@@ -130,7 +129,7 @@ from logilab.common import textutils
 from logilab.common import testlib, STD_BLACKLIST
 # use the same unittest module as testlib
 from logilab.common.testlib import unittest, start_interactive_mode
-from logilab.common.deprecation import deprecated
+from logilab.common.testlib import nocoverage, pause_trace, replace_trace  # bwcompat
 from logilab.common.debugger import Debugger, colorize_source
 import doctest
 
@@ -152,62 +151,6 @@ except ImportError:
 
 CONF_FILE = 'pytestconf.py'
 
-## coverage pausing tools
-
- at contextmanager
-def replace_trace(trace=None):
-    """A context manager that temporary replaces the trace function"""
-    oldtrace = sys.gettrace()
-    sys.settrace(trace)
-    try:
-        yield
-    finally:
-        # specific hack to work around a bug in pycoverage, see
-        # https://bitbucket.org/ned/coveragepy/issue/123
-        if (oldtrace is not None and not callable(oldtrace) and
-            hasattr(oldtrace, 'pytrace')):
-            oldtrace = oldtrace.pytrace
-        sys.settrace(oldtrace)
-
-
-def pause_trace():
-    """A context manager that temporary pauses any tracing"""
-    return replace_trace()
-
-class TraceController(object):
-    ctx_stack = []
-
-    @classmethod
-    @deprecated('[lgc 0.63.1] Use the pause_trace() context manager')
-    def pause_tracing(cls):
-        cls.ctx_stack.append(pause_trace())
-        cls.ctx_stack[-1].__enter__()
-
-    @classmethod
-    @deprecated('[lgc 0.63.1] Use the pause_trace() context manager')
-    def resume_tracing(cls):
-        cls.ctx_stack.pop().__exit__(None, None, None)
-
-
-pause_tracing = TraceController.pause_tracing
-resume_tracing = TraceController.resume_tracing
-
-
-def nocoverage(func):
-    """Function decorator that pauses tracing functions"""
-    if hasattr(func, 'uncovered'):
-        return func
-    func.uncovered = True
-
-    def not_covered(*args, **kwargs):
-        with pause_trace():
-            return func(*args, **kwargs)
-    not_covered.uncovered = True
-    return not_covered
-
-## end of coverage pausing tools
-
-
 TESTFILE_RE = re.compile("^((unit)?test.*|smoketest)\.py$")
 def this_is_a_testfile(filename):
     """returns True if `filename` seems to be a test file"""
diff --git a/logilab/common/testlib.py b/logilab/common/testlib.py
index 9fafdfa..0114713 100644
--- a/logilab/common/testlib.py
+++ b/logilab/common/testlib.py
@@ -44,6 +44,7 @@ __docformat__ = "restructuredtext en"
 # disable camel case warning
 # pylint: disable=C0103
 
+from contextlib import contextmanager
 import sys
 import os, os.path as osp
 import re
@@ -78,7 +79,7 @@ from logilab.common.decorators import cached, classproperty
 from logilab.common import textutils
 
 
-__all__ = ['unittest_main', 'find_tests']
+__all__ = ['unittest_main', 'find_tests', 'nocoverage', 'pause_trace']
 
 DEFAULT_PREFIXES = ('test', 'regrtest', 'smoketest', 'unittest',
                     'func', 'validation')
@@ -199,6 +200,40 @@ def start_interactive_mode(result):
                 break
 
 
+# coverage pausing tools #####################################################
+
+ at contextmanager
+def replace_trace(trace=None):
+    """A context manager that temporary replaces the trace function"""
+    oldtrace = sys.gettrace()
+    sys.settrace(trace)
+    try:
+        yield
+    finally:
+        # specific hack to work around a bug in pycoverage, see
+        # https://bitbucket.org/ned/coveragepy/issue/123
+        if (oldtrace is not None and not callable(oldtrace) and
+            hasattr(oldtrace, 'pytrace')):
+            oldtrace = oldtrace.pytrace
+        sys.settrace(oldtrace)
+
+
+pause_trace = replace_trace
+
+
+def nocoverage(func):
+    """Function decorator that pauses tracing functions"""
+    if hasattr(func, 'uncovered'):
+        return func
+    func.uncovered = True
+
+    def not_covered(*args, **kwargs):
+        with pause_trace():
+            return func(*args, **kwargs)
+    not_covered.uncovered = True
+    return not_covered
+
+
 # test utils ##################################################################
 
 
@@ -293,7 +328,6 @@ def _deprecate(original_func):
 class TestCase(unittest.TestCase):
     """A unittest.TestCase extension with some additional methods."""
     maxDiff = None
-    pdbclass = Debugger
     tags = Tags()
 
     def __init__(self, methodName='runTest'):
diff --git a/logilab_common.egg-info/PKG-INFO b/logilab_common.egg-info/PKG-INFO
index 6101c77..3299e17 100644
--- a/logilab_common.egg-info/PKG-INFO
+++ b/logilab_common.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: logilab-common
-Version: 1.1.0
+Version: 1.2.0
 Summary: collection of low-level Python packages and modules used by Logilab projects
 Home-page: http://www.logilab.org/project/logilab-common
 Author: Logilab
diff --git a/test/unittest_date.py b/test/unittest_date.py
index 973951d..22302b0 100644
--- a/test/unittest_date.py
+++ b/test/unittest_date.py
@@ -20,11 +20,12 @@ Unittests for date helpers
 """
 from logilab.common.testlib import TestCase, unittest_main, tag
 
-from logilab.common.date import date_range, endOfMonth
-from logilab.common.date import add_days_worked, nb_open_days, \
-         get_national_holidays, ustrftime, ticks2datetime, utcdatetime
+from logilab.common.date import (date_range, endOfMonth, add_days_worked,
+        nb_open_days, get_national_holidays, ustrftime, ticks2datetime,
+        utcdatetime, datetime2ticks)
 
 from datetime import date, datetime, timedelta
+from calendar import timegm
 import pytz
 
 try:
@@ -166,6 +167,13 @@ class DateTC(TestCase):
         self.assertEqual(d, self.datetimecls(2014, 7, 26, 10, 0, 0, 57))
         self.assertIsNone(d.tzinfo)
 
+    def test_datetime2ticks(self):
+        d = datetime(2014, 11, 26, 12, 0, 0, 57, tzinfo=pytz.utc)
+        timestamp = timegm(d.timetuple())
+        self.assertEqual(datetime2ticks(d), timestamp * 1000)
+        d = d.replace(microsecond=123456)
+        self.assertEqual(datetime2ticks(d), timestamp * 1000 + 123)
+
 
 class MxDateTC(DateTC):
     datecls = mxDate
diff --git a/test/unittest_pytest.py b/test/unittest_pytest.py
index 7966111..48e36ce 100644
--- a/test/unittest_pytest.py
+++ b/test/unittest_pytest.py
@@ -81,21 +81,6 @@ class ModuleFunctionTC(TestCase):
         with replace_trace(tracefn):
             myfn()
 
-    def test_legacy_pause_resume_tracing(self):
-        def tracefn(frame, event, arg):
-            pass
-
-        with replace_trace(tracefn):
-            pause_tracing()
-            self.assertIs(sys.gettrace(), None)
-            with replace_trace(tracefn):
-                pause_tracing()
-                self.assertIs(sys.gettrace(), None)
-                resume_tracing()
-                self.assertIs(sys.gettrace(), tracefn)
-            self.assertIs(sys.gettrace(), None)
-            resume_tracing()
-            self.assertIs(sys.gettrace(), tracefn)
 
 if __name__ == '__main__':
     unittest_main()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/logilab-common.git



More information about the Python-modules-commits mailing list