56c6deb Update to 1.5.0

Authored and Committed by pghmcfc 3 years ago
    Update to 1.5.0
    
    - New upstream release 1.5.0
      - Allow any string-compatible object to be passed to 'Context.cd', enabling
        use of (for example) 'pathlib.Path' instances (GH#454, GH#577, GH#583,
        GH#607, GH#681)
      - Don't silently discard help text for task arguments whose names happen to
        contain underscores (GH#409, GH#580, GH#611)
      - Don't silently ignore task help specifiers that don't actually map to the
        decorated task's arguments (e.g. '@task(help={"foo": "help for foo"})'
        wrapping a task without a 'foo' argument) (GH#398, GH#580, GH#611)
      - Allow subcollections to act as the default 'tasks' of their parent
        collections (via the new 'default' kwarg to
        '~invoke.collection.Collection.add_collection'); this means that
        non-trivial task trees can specify, e.g. "use my test subcollection's
        default task as the global default task" and similar (GH#197)
      - Enhanced test coverage in a handful of modules whose coverage was under 90%%
      - '~invoke.context.MockContext' now populates its 'NotImplementedError'
        exception instances (typically raised when a command is executed that had
        no pre-prepared result) with the command string that triggered them; this
        makes it much easier to tell what exactly in a test caused the error
      - '~invoke.context.MockContext' now accepts a few quality-of-life shortcuts
        as keys and values in its 'run'/'sudo' arguments:
        - Keys may be compiled regular expression objects, as well as strings, and
          will match any calls whose commands match the regex
        - Values may be 'True' or 'False' as shorthand for otherwise empty
          '~invoke.runners.Result' objects with exit codes of '0' or '1'
          respectively
        - Values may also be strings, as shorthand for otherwise empty
          '~invoke.runners.Result' objects with those strings given as the 'stdout'
          argument
      - Add a new 'repeat' kwarg to '~invoke.context.MockContext' which, when True
        (default: False) causes stored results for its methods to be yielded
        repeatedly instead of consumed (GH#441)
      - Immutable iterable result values handed to '~invoke.context.MockContext'
        would yield errors (due to the use of 'pop()'); the offending logic has
        been retooled to be more iterator-focused and now works for tuples and etc.
      - Update the testing documentation a bit: cleaned up existing examples and
        added new sections for the other updates in the 1.5 release
      - Automatically populate the 'command' attribute of '~invoke.runners.Result'
        objects returned by '~invoke.context.MockContext' methods, with the command
        string triggering that result; previously, users had to do this by hand or
        otherwise suffered inaccurate result objects (GH#700)
      - Upgrade '~invoke.context.MockContext' to wrap its methods in 'Mock' objects
        if the '(unittest.)mock' library is importable; this makes testing
        Invoke-using codebases even easier
    
        
file modified
+1 -0
invoke-1.5.0-pytest-too-recent.patch invoke-1.4.1-pytest-too-recent.patch
file renamed
+46 -44
file modified
+49 -3
file modified
+1 -1