Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-jirafs for openSUSE:Factory checked in at 2023-06-03 00:07:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-jirafs (Old) and /work/SRC/openSUSE:Factory/.python-jirafs.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jirafs" Sat Jun 3 00:07:33 2023 rev:9 rq:1090427 version:2.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-jirafs/python-jirafs.changes 2022-03-24 22:59:07.772315933 +0100 +++ /work/SRC/openSUSE:Factory/.python-jirafs.new.15902/python-jirafs.changes 2023-06-03 00:07:38.766138583 +0200 @@ -1,0 +2,8 @@ +Fri Jun 2 06:06:23 UTC 2023 - Steve Kowalik <steven.kowa...@suse.com> + +- Update to 2.3.1: + Fix a serialization/deserialization problem caused by issue options + found in modern versions of the jira python plugin. +- Add patch remove-mock.patch. + +------------------------------------------------------------------- Old: ---- jirafs-2.3.0.tar.gz New: ---- jirafs-2.3.1.tar.gz remove-mock.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-jirafs.spec ++++++ --- /var/tmp/diff_new_pack.c0f6Rm/_old 2023-06-03 00:07:39.466142717 +0200 +++ /var/tmp/diff_new_pack.c0f6Rm/_new 2023-06-03 00:07:39.470142740 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-jirafs # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,16 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-jirafs -Version: 2.3.0 +Version: 2.3.1 Release: 0 Summary: Library for editing JIRA issues as local text files License: MIT -Group: Development/Languages/Python URL: https://github.com/coddingtonbear/jirafs -Source: https://files.pythonhosted.org/packages/source/j/jirafs/jirafs-%{version}.tar.gz +Source: https://github.com/coddingtonbear/jirafs/archive/refs/tags/%{version}.tar.gz#/jirafs-%{version}.tar.gz +# PATCH-FIX-UPSTREAM gh#coddingtonbear/jirafs#70 +Patch0: remove-mock.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -64,7 +64,7 @@ `git` and `hg`. %prep -%setup -q -n jirafs-%{version} +%autosetup -p1 -n jirafs-%{version} # Remove upper pins sed -i 's/,<[0-9.][0-9.]*//' requirements.txt rm jirafs/.pre-commit-config.yaml @@ -78,11 +78,6 @@ %python_clone -a %{buildroot}%{_bindir}/jirafs %check -# https://github.com/coddingtonbear/jirafs/issues/69 -sed -i 's:import mock:import unittest.mock as mock:' \ - tests/test_*.py tests/commands/base.py -sed -i 's:from mock import:from unittest.mock import:' \ - tests/test_*.py tests/commands/base.py tests/commands/test_push.py git config --global user.name "John Doe" git config --global user.email john...@example.com %pytest -rs @@ -95,6 +90,7 @@ %files %{python_files} %python_alternative %{_bindir}/jirafs -%{python_sitelib}/* +%{python_sitelib}/jirafs +%{python_sitelib}/jirafs-%{version}*info %changelog ++++++ jirafs-2.3.0.tar.gz -> jirafs-2.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/.bumpversion.cfg new/jirafs-2.3.1/.bumpversion.cfg --- old/jirafs-2.3.0/.bumpversion.cfg 2021-03-22 03:19:24.000000000 +0100 +++ new/jirafs-2.3.1/.bumpversion.cfg 2022-09-20 06:07:54.000000000 +0200 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.2.1 +current_version = 2.3.1 commit = True tag_name = {new_version} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/.flake8 new/jirafs-2.3.1/.flake8 --- old/jirafs-2.3.0/.flake8 1970-01-01 01:00:00.000000000 +0100 +++ new/jirafs-2.3.1/.flake8 2022-09-20 06:07:54.000000000 +0200 @@ -0,0 +1,4 @@ +[flake8] +max-line-length=88 +extend-ignore= + E203 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/.gitignore new/jirafs-2.3.1/.gitignore --- old/jirafs-2.3.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/jirafs-2.3.1/.gitignore 2022-09-20 06:07:54.000000000 +0200 @@ -0,0 +1,20 @@ +*.pyc +bin/* +lib/* +src/* +man/* +dist/* +build/* +docs/build/* +include/* +.Python +*egg* +share/* +.tox/* +.noseids +.vscode/ +env/ +local/ +temp/ +.mypy_cache/ +package-lock.json diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/.pre-commit-config.yaml new/jirafs-2.3.1/.pre-commit-config.yaml --- old/jirafs-2.3.0/.pre-commit-config.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/jirafs-2.3.1/.pre-commit-config.yaml 2022-09-20 06:07:54.000000000 +0200 @@ -0,0 +1,40 @@ +# To install the git pre-commit hook run: +# pre-commit install +# To update the pre-commit hooks run: +# pre-commit install-hooks +exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)' +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: debug-statements + - repo: https://github.com/timothycrosley/isort + rev: 5.10.1 + hooks: + - id: isort + args: ["--profile", "black", "--filter-files"] + - repo: https://github.com/ambv/black + rev: 22.8.0 + hooks: + - id: black + - repo: https://gitlab.com/pycqa/flake8 + rev: 3.9.2 + hooks: + - id: flake8 + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v0.910 + hooks: + - id: mypy + args: + - --pretty + - --show-error-codes + - --show-error-context + - --ignore-missing-imports + additional_dependencies: + - types-requests + - types-setuptools + - types-PyYAML + - types-python-dateutil + - types-pytz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/.travis.yml new/jirafs-2.3.1/.travis.yml --- old/jirafs-2.3.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/jirafs-2.3.1/.travis.yml 2022-09-20 06:07:54.000000000 +0200 @@ -0,0 +1,30 @@ +language: python +sudo: false +python: +- 3.6 +- 3.7 +before_install: +- curl -fI $INTEGRATION_TESTING_URL +- pip install --upgrade setuptools +- pip install -r requirements.txt +- pip install pytest mock behave +- pip install -e . +- git config --global user.email "git...@adamcoddington.net" +- git config --global user.name "I'm a Robot" +script: +- py.test +- behave tests/ +notifications: + webhooks: + urls: + - https://webhooks.gitter.im/e/a79205de9fd79c70ee19 + on_success: change + on_failure: always + on_start: false +env: + global: + - secure: kvHtlbvzL0JOQ9nhO5yqXnIL6uDfxR6FWZIUz169AUuzUp4Vz7W40QESKwZzRsg5W7sIel8Sshy2X+sSXmqVFK9wDliPVYlaP+TXyRSdrRqfspXMJyIeGnfArqfQMmADmq6VdfwoPguwsVvXIH2r6gAiUC4sFONXnzOph4wiRV0= + - secure: KIalo50Z25X7EIOf4dMK02F58o2RLQsZdMQuZMz+3UYCj1Vjfv0v+a++n9t4Bb2/uFTMCmK7ipNeT0cmY8pOHR2kWY6RbfTZfiMxXyhgPzJrhvzoyy5Jp1MCJ3/ESo4CJzVlGc6BRXP71QkFoZ0+Y3z/CxYRHbwFFBPT6MObSyI= + - secure: i/AEZ+kS7t4gIdGnF7deMaJlvGWic4lnQhMZHPhAV/nWkH3ZH67QuH25vCEZZXy7yo24dIhzEuekFzHVj0/qqR1UCddzruUVBmINjfodcSGnjAAxwovKC+JBKjnQE0fbTSsXrwOvpivLrGtI9fKBWoH3c0o/jWYEI2JWQeJRlPA= + - secure: eyLQII1VRTOjPRMmSsHODR/7KVzLZi+agoSJFW8zMJCwecM9784eDXhWxw9qakgLCng15tATr8pVP50wplJq0Wc+qRBxXkIuqunJ9hSeFRGOrgRvsj8UvPiU9sq4x+XUK1KJWNP8a5czsEGilx6JuQ943B45HG2qY5sYhtkKcCc= + - secure: Ug0XPJBYPnug4KLme/zZxL1Ii5jDwckegs1i3dgateWMnW06COHMyf7KwC9igt5HJdnhZ7VklTW9gKUg3qdY+QLgUFqEnOdfUKSiw/HeJK0kQwNLvHx+Hmdk9FgKEogIpGIoGXC0k/6NLprboh05zAbmxTXZ/kmvHnbOqicMmvI= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/PKG-INFO new/jirafs-2.3.1/PKG-INFO --- old/jirafs-2.3.0/PKG-INFO 2021-11-26 05:04:32.814861800 +0100 +++ new/jirafs-2.3.1/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +0,0 @@ -Metadata-Version: 2.1 -Name: jirafs -Version: 2.3.0 -Summary: Edit Jira issues as text files locally. -Home-page: https://github.com/coddingtonbear/jirafs -Author: Adam Coddington -Author-email: m...@adamcoddington.net -License: UNKNOWN -Platform: UNKNOWN -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 -License-File: LICENSE - -UNKNOWN - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/__init__.py new/jirafs-2.3.1/jirafs/__init__.py --- old/jirafs-2.3.0/jirafs/__init__.py 2021-11-26 05:04:25.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/__init__.py 2022-09-20 06:07:54.000000000 +0200 @@ -1 +1 @@ -__version__ = "2.3.0" +__version__ = "2.3.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/config.py new/jirafs-2.3.1/jirafs/commands/config.py --- old/jirafs-2.3.0/jirafs/commands/config.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/commands/config.py 2022-09-20 06:07:54.000000000 +0200 @@ -82,7 +82,7 @@ parameters = config.items(section) for key, value in parameters: lines = lines.add_line( - u"{section}.{key}={value}", section=section, key=key, value=value + "{section}.{key}={value}", section=section, key=key, value=value ) return lines diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/match.py new/jirafs-2.3.1/jirafs/commands/match.py --- old/jirafs-2.3.0/jirafs/commands/match.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/commands/match.py 2022-09-20 06:07:54.000000000 +0200 @@ -97,10 +97,10 @@ success = actual_value == field_value - comparison_result = u" != " + comparison_result = " != " if success: - comparison_result = u" == " - message = u"{left} {comparison} {right}".format( + comparison_result = " == " + message = "{left} {comparison} {right}".format( left=actual_value, comparison=comparison_result, right=field_value, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/merge.py new/jirafs-2.3.1/jirafs/commands/merge.py --- old/jirafs-2.3.0/jirafs/commands/merge.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/commands/merge.py 2022-09-20 06:07:54.000000000 +0200 @@ -1,9 +1,9 @@ import logging from jirafs import constants, utils -from jirafs.plugin import CommandPlugin from jirafs.jirafieldmanager import JiraFieldManager from jirafs.jiralinkmanager import JiraLinkManager +from jirafs.plugin import CommandPlugin class Command(CommandPlugin): @@ -37,7 +37,7 @@ ) for field, values in (jira_fields - master_fields).items(): folder.log( - u'Field {field} changed: "{fr}" -> "{to}"'.format( + 'Field {field} changed: "{fr}" -> "{to}"'.format( field=field, fr=self.truncate_field_value(values[0]), to=self.truncate_field_value(values[1]), @@ -50,7 +50,7 @@ values_dict = (jira_links - master_links).get(category, {}) for field, values in values_dict.items(): folder.log( - u'Link {field} changed: "{fr}" -> "{to}"'.format( + 'Link {field} changed: "{fr}" -> "{to}"'.format( field=field, fr=values[0], to=values[1] ) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/push.py new/jirafs-2.3.1/jirafs/commands/push.py --- old/jirafs-2.3.0/jirafs/commands/push.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/commands/push.py 2022-09-20 06:07:54.000000000 +0200 @@ -33,8 +33,8 @@ continue if data[1].get("status") not in valid_types: raise exceptions.IssueValidationError( - u"{status} is not a valid issue link type for {target}; " - u"options include the following: {options}".format( + "{status} is not a valid issue link type for {target}; " + "options include the following: {options}".format( status=data[1].get("status"), target=target, options=", ".join(valid_types.keys()), @@ -91,7 +91,7 @@ comment = folder.get_new_comment(clear=True, ready=True) if comment: folder.log( - u'Adding comment "{comment}"'.format( + 'Adding comment "{comment}"'.format( comment=self.truncate_field_value(comment) ) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/constants.py new/jirafs-2.3.1/jirafs/constants.py --- old/jirafs-2.3.0/jirafs/constants.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/constants.py 2022-09-20 06:07:54.000000000 +0200 @@ -1,3 +1,5 @@ +from environmental_override import override # noqa + from jirafs import __version__ as version # Metadata filenames @@ -5,7 +7,7 @@ TICKET_COMMENTS = "comments.read_only.jira" TICKET_NEW_COMMENT = "new_comment.jira" TICKET_LINKS = "links.jira" -TICKET_FILE_FIELD_TEMPLATE = u"{field_name}.jira" +TICKET_FILE_FIELD_TEMPLATE = "{field_name}.jira" # Generic settings LOCAL_ONLY_FILE = ".jirafs_local" @@ -42,6 +44,4 @@ CURRENT_REPO_VERSION = 17 -from environmental_override import override # noqa - override(locals(), "JIRAFS_") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/jirafieldmanager.py new/jirafs-2.3.1/jirafs/jirafieldmanager.py --- old/jirafs-2.3.0/jirafs/jirafieldmanager.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/jirafieldmanager.py 2022-09-20 06:07:54.000000000 +0200 @@ -207,7 +207,7 @@ for field in sorted(self.keys()): if field not in used_fields | requested_fields: out.write( - u"* {human} ({field}):\n".format( + "* {human} ({field}):\n".format( human=self.get_human_name_for_field(field), field=field, ) @@ -225,7 +225,7 @@ ) # Each line is preceded by 4 spaces of whitespace - padded_lines = [u" %s\n" % f for f in field_string.split("\n")] + padded_lines = [" %s\n" % f for f in field_string.split("\n")] for line in padded_lines: out.write(line) else: @@ -234,7 +234,7 @@ ) with io.open(field_path, "w", encoding="utf-8") as fout: fout.write(self[field]) - fout.write(u"\n") + fout.write("\n") class GitRevisionJiraFieldManager(GitRevisionReader, AutomaticJiraFieldManager): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/jiralinkmanager.py new/jirafs-2.3.1/jirafs/jiralinkmanager.py --- old/jirafs-2.3.0/jirafs/jiralinkmanager.py 2020-01-13 06:37:20.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/jiralinkmanager.py 2022-09-20 06:07:54.000000000 +0200 @@ -1,4 +1,3 @@ -import copy import re from jirafs import constants, exceptions @@ -6,7 +5,7 @@ class JiraLinkManager(dict): - TICKET_MATCHER = re.compile("[A-Za-z]+-\d+") + TICKET_MATCHER = re.compile(r"[A-Za-z]+-\d+") def __init__(self, data, prepared=False): if not prepared: @@ -70,9 +69,9 @@ left, right = line.split(": ", 1) except ValueError: raise exceptions.IssueValidationError( - u"Remote links must have a description; format your " - u"link to {url} like '* Your Title: {url}' " - u"to continue.".format(url=line.strip()) + "Remote links must have a description; format your " + "link to {url} like '* Your Title: {url}' " + "to continue.".format(url=line.strip()) ) left = left.strip() right = right.strip() @@ -98,7 +97,7 @@ ) def get_file_contents(self, path): - raise NotImplemented() + raise NotImplementedError() class GitRevisionJiraLinkManager(GitRevisionReader, AutomaticJiraLinkManager): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/migrations.py new/jirafs-2.3.1/jirafs/migrations.py --- old/jirafs-2.3.0/jirafs/migrations.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/migrations.py 2022-09-20 06:07:54.000000000 +0200 @@ -1,3 +1,4 @@ +import copy import json import os import shutil @@ -52,9 +53,16 @@ os.mkdir(repo.get_shadow_path(".jirafs")) except OSError: pass - storable = {"options": repo.issue._options, "raw": repo.issue.raw} + + options = copy.copy(repo.issue._options) + if "default_batch_size" in options: + # This will have classes as keys, which will cause everything + # to have a real problem; let's just pop this off + options.pop("default_batch_size") + + storable = {"options": options, "raw": repo.issue.raw} with open(repo.get_shadow_path(".jirafs/issue.json"), "w") as out: - out.write(json.dumps(storable)) + out.write(json.dumps(storable, default=lambda x: str(x))) issue_pickle_path = repo.get_shadow_path(".jirafs/issue.json") repo.run_git_command("add", "-f", issue_pickle_path, shadow=True) repo.run_git_command("commit", "-m", "Completing migration_0003", shadow=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/plugin.py new/jirafs-2.3.1/jirafs/plugin.py --- old/jirafs-2.3.0/jirafs/plugin.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/plugin.py 2022-09-20 06:07:54.000000000 +0200 @@ -8,7 +8,9 @@ import os import re import sys +from distutils.version import LooseVersion from typing import ( + TYPE_CHECKING, Dict, Iterator, List, @@ -17,16 +19,14 @@ Pattern, Set, Tuple, - TYPE_CHECKING, Union, ) from blessings import Terminal -from distutils.version import LooseVersion +from . import __version__, constants from .exceptions import MacroAttributeError, MacroContentError, MacroError from .types import JirafsMacroAttributes -from . import __version__, constants if TYPE_CHECKING: from .ticketfolder import TicketFolder @@ -152,8 +152,8 @@ class JirafsPluginBase(object): - MIN_VERSION = None - MAX_VERSION = None + MIN_VERSION: Optional[str] = None + MAX_VERSION: Optional[str] = None def __init__(self, ticketfolder, entrypoint_name, **kwargs): self.ticketfolder: TicketFolder = ticketfolder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs/ticketfolder.py new/jirafs-2.3.1/jirafs/ticketfolder.py --- old/jirafs-2.3.0/jirafs/ticketfolder.py 2021-11-26 05:02:57.000000000 +0100 +++ new/jirafs-2.3.1/jirafs/ticketfolder.py 2022-09-20 06:07:54.000000000 +0200 @@ -1,9 +1,10 @@ import codecs +import copy import fnmatch -import logging -import logging.handlers import io import json +import logging +import logging.handlers import os import re import subprocess @@ -11,14 +12,11 @@ from jira.resources import Issue -from . import constants -from . import exceptions -from . import migrations -from . import utils -from .jiralinkmanager import JiraLinkManager +from . import constants, exceptions, migrations, utils +from .exceptions import MacroError from .jirafieldmanager import JiraFieldManager +from .jiralinkmanager import JiraLinkManager from .plugin import MacroPlugin, PluginValidationError -from .exceptions import MacroError class TicketFolderLoggerAdapter(logging.LoggerAdapter): @@ -49,7 +47,7 @@ ) self._handler = logging.handlers.RotatingFileHandler( self.get_metadata_path(constants.TICKET_OPERATION_LOG), - maxBytes=2 ** 20, + maxBytes=2**20, backupCount=2, encoding="utf-8", ) @@ -212,21 +210,29 @@ if hasattr(self, "_jira"): del self._jira + def serialize(self) -> str: + options = copy.copy(self.issue._options) + if "default_batch_size" in options: + # This will have classes as keys, which will cause everything + # to have a real problem; let's just pop this off + options.pop("default_batch_size") + + storable = {"options": options, "raw": self.issue.raw} + + return json.dumps( + storable, + indent=4, + sort_keys=True, + ensure_ascii=False, + ) + def store_cached_issue(self, shadow=True): - storable = {"options": self.issue._options, "raw": self.issue.raw} with io.open( self.get_path(".jirafs/issue.json", shadow=shadow), "w", encoding="utf-8", ) as out: - out.write( - json.dumps( - storable, - indent=4, - sort_keys=True, - ensure_ascii=False, - ) - ) + out.write(self.serialize()) @property def cached_issue(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/PKG-INFO new/jirafs-2.3.1/jirafs.egg-info/PKG-INFO --- old/jirafs-2.3.0/jirafs.egg-info/PKG-INFO 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,16 +0,0 @@ -Metadata-Version: 2.1 -Name: jirafs -Version: 2.3.0 -Summary: Edit Jira issues as text files locally. -Home-page: https://github.com/coddingtonbear/jirafs -Author: Adam Coddington -Author-email: m...@adamcoddington.net -License: UNKNOWN -Platform: UNKNOWN -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 -License-File: LICENSE - -UNKNOWN - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/SOURCES.txt new/jirafs-2.3.1/jirafs.egg-info/SOURCES.txt --- old/jirafs-2.3.0/jirafs.egg-info/SOURCES.txt 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ -.bumpversion.cfg -CHANGELOG.rst -LICENSE -MANIFEST.in -readme.rst -requirements-dev.txt -requirements.txt -setup.cfg -setup.py -tox.ini -docs/Makefile -docs/source/advanced_commands.rst -docs/source/commands.rst -docs/source/conf.py -docs/source/configuration.rst -docs/source/details.rst -docs/source/getting_started.rst -docs/source/index.rst -docs/source/macros.rst -docs/source/migrating.rst -docs/source/plugins.rst -docs/source/writing_command_plugins.rst -docs/source/writing_folder_plugins.rst -docs/source/writing_plugins.rst -jirafs/.pre-commit-config.yaml -jirafs/__init__.py -jirafs/cmdline.py -jirafs/constants.py -jirafs/exceptions.py -jirafs/jirafieldmanager.py -jirafs/jiralinkmanager.py -jirafs/migrations.py -jirafs/plugin.py -jirafs/readers.py -jirafs/ticketfolder.py -jirafs/types.py -jirafs/utils.py -jirafs.egg-info/PKG-INFO -jirafs.egg-info/SOURCES.txt -jirafs.egg-info/dependency_links.txt -jirafs.egg-info/entry_points.txt -jirafs.egg-info/requires.txt -jirafs.egg-info/top_level.txt -jirafs/commands/__init__.py -jirafs/commands/assign.py -jirafs/commands/clone.py -jirafs/commands/commit.py -jirafs/commands/config.py -jirafs/commands/create.py -jirafs/commands/debug.py -jirafs/commands/diff.py -jirafs/commands/fetch.py -jirafs/commands/field.py -jirafs/commands/git.py -jirafs/commands/log.py -jirafs/commands/match.py -jirafs/commands/merge.py -jirafs/commands/open.py -jirafs/commands/plugins.py -jirafs/commands/pull.py -jirafs/commands/push.py -jirafs/commands/search_users.py -jirafs/commands/setfield.py -jirafs/commands/status.py -jirafs/commands/submit.py -jirafs/commands/subtask.py -jirafs/commands/transition.py -jirafs/commands/version.py -jirafs/commands/preview/__init__.py -jirafs/commands/preview/templates/base.html -jirafs/commands/preview/templates/traceback.html -tests/__init__.py -tests/base.py -tests/environment.py -tests/test_command_result.py -tests/test_jirafieldmanager.py -tests/test_plugins.py -tests/test_ticketfolder.py -tests/test_utils.py -tests/assets/basic.issue.json -tests/assets/basic.status.json -tests/assets/default.description.jira -tests/assets/default.fields.jira -tests/assets/test_fetch/fetched.jira -tests/assets/test_fetch/fetched.json -tests/assets/test_status_local_changes/alpha.svg -tests/commands/__init__.py -tests/commands/base.py -tests/commands/test_push.py -tests/features/clone.feature -tests/features/field.feature -tests/integration/__init__.py -tests/integration/base.py -tests/integration/test_clone_issue.py -tests/steps/__init__.py -tests/steps/basic.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/dependency_links.txt new/jirafs-2.3.1/jirafs.egg-info/dependency_links.txt --- old/jirafs-2.3.0/jirafs.egg-info/dependency_links.txt 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/entry_points.txt new/jirafs-2.3.1/jirafs.egg-info/entry_points.txt --- old/jirafs-2.3.0/jirafs.egg-info/entry_points.txt 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/entry_points.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -[console_scripts] -jirafs = jirafs.cmdline:main - -[jirafs_commands] -assign = jirafs.commands.assign:Command -clone = jirafs.commands.clone:Command -commit = jirafs.commands.commit:Command -config = jirafs.commands.config:Command -create = jirafs.commands.create:Command -debug = jirafs.commands.debug:Command -diff = jirafs.commands.diff:Command -fetch = jirafs.commands.fetch:Command -field = jirafs.commands.field:Command -git = jirafs.commands.git:Command -log = jirafs.commands.log:Command -match = jirafs.commands.match:Command -merge = jirafs.commands.merge:Command -open = jirafs.commands.open:Command -plugins = jirafs.commands.plugins:Command -preview = jirafs.commands.preview:Command -pull = jirafs.commands.pull:Command -push = jirafs.commands.push:Command -search_users = jirafs.commands.search_users:Command -setfield = jirafs.commands.setfield:Command -status = jirafs.commands.status:Command -submit = jirafs.commands.submit:Command -subtask = jirafs.commands.subtask:Command -transition = jirafs.commands.transition:Command -version = jirafs.commands.version:Command - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/requires.txt new/jirafs-2.3.1/jirafs.egg-info/requires.txt --- old/jirafs-2.3.0/jirafs.egg-info/requires.txt 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -jira<4,>=3.1.1 -python-dateutil<3,>=2.8.1 -blessings<2.0,>=1.5.1 -prettytable<1.0,>=0.7.2 -environmental-override<1.0.0,>=0.1.2 -jinja2<3.0,>=2.10.3 -watchdog<1.0.0,>=0.9.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/top_level.txt new/jirafs-2.3.1/jirafs.egg-info/top_level.txt --- old/jirafs-2.3.0/jirafs.egg-info/top_level.txt 2021-11-26 05:04:32.000000000 +0100 +++ new/jirafs-2.3.1/jirafs.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -jirafs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jirafs-2.3.0/setup.cfg new/jirafs-2.3.1/setup.cfg --- old/jirafs-2.3.0/setup.cfg 2021-11-26 05:04:32.814861800 +0100 +++ new/jirafs-2.3.1/setup.cfg 2022-09-20 06:07:54.000000000 +0200 @@ -1,7 +1,2 @@ [tool:pytest] -norecursedirs = lib - -[egg_info] -tag_build = -tag_date = 0 - +norecursedirs=lib ++++++ remove-mock.patch ++++++ >From 2aa5e4620920f51a9ad4e3ade05b45e88aaf7155 Mon Sep 17 00:00:00 2001 From: Steve Kowalik <ste...@wedontsleep.org> Date: Fri, 2 Jun 2023 15:47:09 +1000 Subject: [PATCH] Switch to unittest.mock Python 3.3+ has included mock in the standard library, under the unittest module. Switch to using that, rather than the external mock library. Fixes #69 --- .travis.yml | 2 +- tests/commands/base.py | 4 ++-- tests/commands/test_push.py | 2 +- tests/test_command_result.py | 2 +- tests/test_plugins.py | 4 ++-- tests/test_ticketfolder.py | 4 ++-- tests/test_utils.py | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 76a9d96..1bcbae1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ before_install: - curl -fI $INTEGRATION_TESTING_URL - pip install --upgrade setuptools - pip install -r requirements.txt -- pip install pytest mock behave +- pip install pytest behave - pip install -e . - git config --global user.email "git...@adamcoddington.net" - git config --global user.name "I'm a Robot" diff --git a/tests/commands/base.py b/tests/commands/base.py index e961bd8..5843c5f 100644 --- a/tests/commands/base.py +++ b/tests/commands/base.py @@ -1,8 +1,8 @@ import os import tempfile -import mock -from mock import patch +from unittest import mock +from unittest.mock import patch from jirafs.utils import run_command_method_with_kwargs diff --git a/tests/commands/test_push.py b/tests/commands/test_push.py index 78e7673..283dbc1 100644 --- a/tests/commands/test_push.py +++ b/tests/commands/test_push.py @@ -1,4 +1,4 @@ -from mock import call, patch +from unittest.mock import call, patch from jirafs.utils import run_command_method_with_kwargs diff --git a/tests/test_command_result.py b/tests/test_command_result.py index f44ec43..49ed5c9 100644 --- a/tests/test_command_result.py +++ b/tests/test_command_result.py @@ -1,4 +1,4 @@ -from mock import patch +from unittest.mock import patch from jirafs.plugin import CommandResult diff --git a/tests/test_plugins.py b/tests/test_plugins.py index e1af5bf..f165874 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -3,8 +3,8 @@ import shutil import tempfile -import mock -from mock import patch +from unittest import mock +from unittest.mock import patch from jirafs.plugin import MacroPlugin from jirafs.utils import run_command_method_with_kwargs diff --git a/tests/test_ticketfolder.py b/tests/test_ticketfolder.py index f93d2b7..eba31d6 100644 --- a/tests/test_ticketfolder.py +++ b/tests/test_ticketfolder.py @@ -4,9 +4,9 @@ import shutil import tempfile -import mock +from unittest import mock import six -from mock import patch +from unittest.mock import patch from jirafs import exceptions from jirafs.jirafieldmanager import JiraFieldManager diff --git a/tests/test_utils.py b/tests/test_utils.py index c26246f..7c9e41e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,6 +1,6 @@ from distutils.version import LooseVersion -import mock +from unittest import mock from jirafs import utils