Hello community,

here is the log from the commit of package python-hammett for openSUSE:Factory 
checked in at 2020-04-08 19:57:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-hammett (Old)
 and      /work/SRC/openSUSE:Factory/.python-hammett.new.3248 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-hammett"

Wed Apr  8 19:57:36 2020 rev:2 rq:792493 version:0.5.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-hammett/python-hammett.changes    
2020-03-31 17:15:26.759635247 +0200
+++ /work/SRC/openSUSE:Factory/.python-hammett.new.3248/python-hammett.changes  
2020-04-08 19:57:57.289179110 +0200
@@ -1,0 +2,9 @@
+Wed Apr  8 14:39:57 UTC 2020 - Marketa Calabkova <mcalabk...@suse.com>
+
+- update to 0.5.0
+  * Implemented support for filtering tests based on markers. Also 
+    supports the marker[argument] syntax that goes beyond what pytest 
+    can do
+  * Nicer output on failed tests
+
+-------------------------------------------------------------------

Old:
----
  hammett-0.4.0.tar.gz

New:
----
  hammett-0.5.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-hammett.spec ++++++
--- /var/tmp/diff_new_pack.CTLSBN/_old  2020-04-08 19:57:58.029179651 +0200
+++ /var/tmp/diff_new_pack.CTLSBN/_new  2020-04-08 19:57:58.033179654 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-hammett
-Version:        0.4.0
+Version:        0.5.0
 Release:        0
 Summary:        hammett is a fast python test runner
 License:        BSD-3-Clause

++++++ hammett-0.4.0.tar.gz -> hammett-0.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hammett-0.4.0/HISTORY.rst 
new/hammett-0.5.0/HISTORY.rst
--- old/hammett-0.4.0/HISTORY.rst       2020-03-25 15:55:06.000000000 +0100
+++ new/hammett-0.5.0/HISTORY.rst       2020-03-30 15:23:24.000000000 +0200
@@ -1,6 +1,14 @@
 Changelog
 ---------
 
+0.5.0 (2020-03-30)
+~~~~~~~~~~~~~~~~~~
+
+* Implemented support for filtering tests based on markers. Also supports the 
marker[argument] syntax that goes beyond what pytest can do
+
+* Nicer output on failed tests
+
+
 0.4.0 (2020-03-25)
 ~~~~~~~~~~~~~~~~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hammett-0.4.0/PKG-INFO new/hammett-0.5.0/PKG-INFO
--- old/hammett-0.4.0/PKG-INFO  2020-03-25 15:55:33.000000000 +0100
+++ new/hammett-0.5.0/PKG-INFO  2020-03-30 15:23:58.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: hammett
-Version: 0.4.0
+Version: 0.5.0
 Summary: hammett is a fast python test runner
 Home-page: https://github.com/boxed/hammett
 Author: Anders Hovmöller
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hammett-0.4.0/hammett/__init__.py 
new/hammett-0.5.0/hammett/__init__.py
--- old/hammett-0.4.0/hammett/__init__.py       2020-03-25 15:53:14.000000000 
+0100
+++ new/hammett-0.5.0/hammett/__init__.py       2020-03-30 15:22:05.000000000 
+0200
@@ -4,7 +4,7 @@
 import hammett.mark as mark
 
 
-__version__ = '0.4.0'
+__version__ = '0.5.0'
 
 
 MISSING = object()
@@ -138,10 +138,33 @@
         return self.additional_fixtures_wanted.add(s)
 
 
-def main(verbose=False, fail_fast=False, quiet=False, filenames=None, 
drop_into_debugger=False, match=False, durations=False):
+def parse_markers(markers):
+    if markers is None:
+        return None
+
+    def parse_one(s):
+        if '[' not in s:
+            return s, None
+
+        assert s.endswith(']')
+        base_name, _, name_plus_end_bracket = s.partition('[')
+        return base_name, name_plus_end_bracket[:-1]
+
+    # So far let's do something stupidly simple
+    markers = markers.split(';')
+    return dict(parse_one(m.strip()) for m in markers)
+
+
+def main(verbose=False, fail_fast=False, quiet=False, filenames=None, 
drop_into_debugger=False, match=False, durations=False, markers=None):
     import sys
+    if sys.version_info[:2] < (3, 7):
+        print('hammett requires python 3.7 or later')
+        exit(999)
+
     sys.modules['pytest'] = sys.modules['hammett']
 
+    markers = parse_markers(markers)
+
     clean_up_sys_path = False
     if os.getcwd() not in sys.path:
         sys.path.insert(0, os.getcwd())
@@ -149,7 +172,7 @@
 
     from hammett.impl import should_stop
 
-    global _fail_fast, _verbose, _quiet, results, _drop_into_debugger, 
_durations
+    global _fail_fast, _verbose, _quiet, results, _drop_into_debugger, 
_durations, _markers
 
     results = dict(success=0, failed=0, skipped=0, abort=0)
     _verbose = verbose
@@ -215,6 +238,22 @@
                     if match not in name:
                         continue
 
+                if markers is not None:
+                    keep = False
+                    for f_marker in getattr(f, 'hammett_markers', []):
+                        if f_marker.name in markers:
+                            arg = markers[f_marker.name]
+                            if arg is not None:
+                                assert len(f_marker.args) == 1, 'hammett only 
supports filtering on single arguments to markers right now'
+                                if str(f_marker.args[0]) == arg:
+                                    keep = True
+                                    break
+                            else:
+                                keep = True
+                                break
+                    if not keep:
+                        continue
+
                 execute_test_function(module_name + '.' + name, f, 
module_request)
             if should_stop():
                 break
@@ -269,6 +308,7 @@
     parser.add_argument('-x', dest='fail_fast', action='store_true', 
default=False)
     parser.add_argument('-q', dest='quiet', action='store_true', default=False)
     parser.add_argument('-k', dest='match', default=None)
+    parser.add_argument('-m', dest='markers', default=None)
     parser.add_argument('--durations', dest='durations', action='store_true', 
default=False)
     parser.add_argument('--pdb', dest='drop_into_debugger', 
action='store_true', default=False)
     parser.add_argument(dest='filenames', nargs='*')
@@ -282,6 +322,7 @@
         drop_into_debugger=args.drop_into_debugger,
         match=args.match,
         durations=args.durations,
+        markers=args.markers,
     )
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hammett-0.4.0/hammett/impl.py 
new/hammett-0.5.0/hammett/impl.py
--- old/hammett-0.4.0/hammett/impl.py   2020-03-25 15:52:16.000000000 +0100
+++ new/hammett-0.5.0/hammett/impl.py   2020-03-27 13:38:29.000000000 +0100
@@ -197,6 +197,42 @@
     return False
 
 
+def indent(s, levels=1):
+    ind = '    ' * levels
+    return '\n'.join(ind + x for x in s.split('\n'))
+
+
+def pretty_format(x, _indent=0):
+    indent = '    ' * _indent
+    result = ''
+    if isinstance(x, dict):
+        if not x:
+            return '{}'
+        result += '{\n'
+        for k, v in x.items():
+            result += f'{indent}    {k!r}: {pretty_format(v, _indent + 1)},\n'
+        result += f'{indent}}}'
+        return result
+    elif isinstance(x, list):
+        if not x:
+            return '[]'
+        result += '[\n'
+        for v in x:
+            result += f'{indent}    {pretty_format(v, _indent + 1)},\n'
+        result += f'{indent}]'
+        return result
+    elif isinstance(x, tuple):
+        if not x:
+            return '(,)'
+        result += '(\n'
+        for v in x:
+            result += f'{indent}    {pretty_format(v, _indent + 1)},\n'
+        result += f'{indent})'
+        return result
+    else:
+        return repr(x)
+
+
 def analyze_assert(tb):
     # grab assert source line
     try:
@@ -238,10 +274,10 @@
     from astunparse import unparse
     left = eval(unparse(assert_statement.test.left), tb.tb_frame.f_globals, 
tb.tb_frame.f_locals)
     hammett.print('left:')
-    hammett.print(f'   {left!r}')
+    hammett.print(indent(pretty_format(left)))
     right = eval(unparse(assert_statement.test.comparators), 
tb.tb_frame.f_globals, tb.tb_frame.f_locals)
     hammett.print('right:')
-    hammett.print(f'   {right!r}')
+    hammett.print(indent(pretty_format(right)))
     if isinstance(left, str) and isinstance(right, str) and len(left) > 200 
and len(right) > 200 and '\n' in left:
         print()
         print('--- Diff of left and right assert components ---')
@@ -360,7 +396,7 @@
                 for k, v in local_variables.items():
                     hammett.print(f'{k}:')
                     try:
-                        hammett.print('   ', repr(v))
+                        hammett.print(indent(pretty_format(v)))
                     except Exception as e:
                         hammett.print(f'   Error getting local variable repr: 
{e}')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hammett-0.4.0/hammett.egg-info/PKG-INFO 
new/hammett-0.5.0/hammett.egg-info/PKG-INFO
--- old/hammett-0.4.0/hammett.egg-info/PKG-INFO 2020-03-25 15:55:33.000000000 
+0100
+++ new/hammett-0.5.0/hammett.egg-info/PKG-INFO 2020-03-30 15:23:56.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: hammett
-Version: 0.4.0
+Version: 0.5.0
 Summary: hammett is a fast python test runner
 Home-page: https://github.com/boxed/hammett
 Author: Anders Hovmöller


Reply via email to