14
0

- update to 1.4.0:

* Less distracting main identity indicator
  * Redirect to the original URL after log in
  * Merge organizations when adding an alias
  * Customizable trusted sources for username matching
  * Users permissions migrated (#849)
  * Update workspace when identities are split (#919)
- update to 1.3.0:
  * Remove merge recommendations (#883)
  * Merge organizations when adding an alias (#913)
  * User permissions per tenant
  * The link to an individual's GitHub profile no longer
    appears several times when there is more than one GitHub
    identity.
  * Connection closed when job is executed
- drop add-missing-format-calls.patch (obsolete)
- Update to version 0.7.23
- Update to version 0.7.22
- Update to version 0.7.21
- Update to version 0.7.20

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-sortinghat?expand=0&rev=44
This commit is contained in:
2024-10-07 20:53:32 +00:00
committed by Git OBS Bridge
commit a9ed3e7caa
10 changed files with 635 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

View File

@@ -0,0 +1,86 @@
Index: grimoirelab-sortinghat-1.2.1/tests/test_schema.py
===================================================================
--- grimoirelab-sortinghat-1.2.1.orig/tests/test_schema.py
+++ grimoirelab-sortinghat-1.2.1/tests/test_schema.py
@@ -22,6 +22,7 @@
#
import datetime
+import unittest
import unittest.mock
import json
import httpretty
@@ -1408,6 +1409,7 @@ class TestQueryPagination(django.test.Te
self.assertEqual(pag_data['endIndex'], 6)
self.assertEqual(pag_data['totalResults'], 6)
+ @unittest.skip("Broken")
def test_page_size_negative(self):
"""Check if it fails when `pageSize` is a negative number"""
@@ -6399,7 +6401,8 @@ class TestAddIdentityMutation(django.tes
variables=params)
msg = executed['errors'][0]['message']
- self.assertEqual(msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR)
+ self.assertEqual(
+ msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR.format(uuid=params['uuid']))
def test_add_identity_name_none(self):
"""Check if the username is set to the profile when no name is provided"""
@@ -8195,7 +8198,8 @@ class TestWithdrawMutation(django.test.T
variables=params)
msg = executed['errors'][0]['message']
- self.assertEqual(msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR)
+ self.assertEqual(
+ msg, INDIVIDUAL_DOES_NOT_EXIST_ERROR.format(uuid=params['uuid']))
def test_non_existing_organization(self):
"""Check if it fails when the organization does not exist"""
@@ -9882,6 +9886,7 @@ class TestUnifyMutation(django.test.Test
source='scm',
uuid=self.jrae.uuid)
+ @unittest.skip("Broken")
@unittest.mock.patch('sortinghat.core.jobs.rq.job.uuid4')
def test_unify(self, mock_job_id_gen):
"""Check if unify is applied for the specified individuals"""
@@ -9954,6 +9959,7 @@ class TestUnifyMutation(django.test.Test
id5 = identities[4]
self.assertEqual(id5, self.jr2)
+ @unittest.skip("Broken")
@unittest.mock.patch('sortinghat.core.jobs.rq.job.uuid4')
def test_unify_last_modified(self, mock_job_id_gen):
"""Check if unify is applied only for the individuals modified after a date"""
Index: grimoirelab-sortinghat-1.2.1/tests/cli/test_cmd_config.py
===================================================================
--- grimoirelab-sortinghat-1.2.1.orig/tests/cli/test_cmd_config.py
+++ grimoirelab-sortinghat-1.2.1/tests/cli/test_cmd_config.py
@@ -41,10 +41,10 @@ MOCK_CONFIG_FILEPATH = os.path.join(os.p
CONFIG_FILE_EXISTS_ERROR = "Error: Configuration file {} already exists. Use '--overwrite' to replace it.\n"
-INVALID_CONFIG_FILE = "Error: Could not open file {}: [Errno 21] Is a directory: '{}'\n"
+INVALID_CONFIG_FILE = "Error: Could not open file '{}': [Errno 21] Is a directory: '{}'\n"
SET_KEY_CONFIG_ERROR = "Error: {} config parameter is not supported\n"
GET_KEY_CONFIG_ERROR = "Error: {} config parameter is not supported\n"
-NOT_FOUND_FILE_ERROR = "Error: Could not open file {}: file does not exist\n"
+NOT_FOUND_FILE_ERROR = "Error: Could not open file '{}': file does not exist\n"
class TestInitConfig(unittest.TestCase):
Index: grimoirelab-sortinghat-1.2.1/sortinghat/core/decorators.py
===================================================================
--- grimoirelab-sortinghat-1.2.1.orig/sortinghat/core/decorators.py
+++ grimoirelab-sortinghat-1.2.1/sortinghat/core/decorators.py
@@ -68,6 +68,8 @@ check_auth = user_passes_test(lambda u:
def check_permissions(perms):
+ if isinstance(perms, str):
+ perms = (perms,)
return user_passes_test(lambda u: u.has_perms(perms))

View File

@@ -0,0 +1,59 @@
Index: grimoirelab-sortinghat-1.2.1/config/settings/config_testing.py
===================================================================
--- grimoirelab-sortinghat-1.2.1.orig/config/settings/config_testing.py
+++ grimoirelab-sortinghat-1.2.1/config/settings/config_testing.py
@@ -1,3 +1,4 @@
+import os
import sys
import logging
@@ -38,8 +39,8 @@ SQL_MODE = [
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
- 'USER': 'root',
- 'PASSWORD': 'root',
+ 'USER': os.environ.get('TEST_SORTINGHAT_DB_USER', 'root'),
+ 'PASSWORD': os.environ.get('TEST_SORTINGHAT_DB_PASSWORD', 'root'),
'NAME': 'sortinghat_db',
'OPTIONS': {
'charset': 'utf8mb4',
@@ -49,9 +50,10 @@ DATABASES = {
'NAME': 'testhat',
'CHARSET': 'utf8mb4',
'COLLATION': 'utf8mb4_unicode_520_ci',
+ 'MIRROR': False
},
'HOST': '127.0.0.1',
- 'PORT': 3306
+ 'PORT': os.environ.get('TEST_SORTINGHAT_DB_PORT', 3306)
}
}
Index: grimoirelab-sortinghat-1.2.1/config/settings/config_testing_tenant.py
===================================================================
--- grimoirelab-sortinghat-1.2.1.orig/config/settings/config_testing_tenant.py
+++ grimoirelab-sortinghat-1.2.1/config/settings/config_testing_tenant.py
@@ -15,8 +15,8 @@ TENANTS_DEDICATED_QUEUES = [t["name"] fo
DATABASES.update({
tenant: {
'ENGINE': 'django.db.backends.mysql',
- 'USER': 'root',
- 'PASSWORD': 'root',
+ 'USER': os.environ.get('TEST_SORTINGHAT_DB_USER', 'root'),
+ 'PASSWORD': os.environ.get('TEST_SORTINGHAT_DB_PASSWORD', 'root'),
'NAME': tenant,
'OPTIONS': {
'charset': 'utf8mb4',
@@ -26,9 +26,10 @@ DATABASES.update({
'NAME': tenant,
'CHARSET': 'utf8mb4',
'COLLATION': 'utf8mb4_unicode_520_ci',
+ 'MIRROR': False
},
'HOST': '127.0.0.1',
- 'PORT': 3306
+ 'PORT': os.environ.get('TEST_SORTINGHAT_DB_PORT', 3306)
}
for tenant in [t["name"] for t in tenants_cfg]
})

236
python-sortinghat.changes Normal file
View File

@@ -0,0 +1,236 @@
-------------------------------------------------------------------
Mon Oct 7 20:49:57 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 1.4.0:
* Less distracting main identity indicator
* Redirect to the original URL after log in
* Merge organizations when adding an alias
* Customizable trusted sources for username matching
* Users permissions migrated (#849)
* Update workspace when identities are split (#919)
- update to 1.3.0:
* Remove merge recommendations (#883)
* Merge organizations when adding an alias (#913)
* User permissions per tenant
* The link to an individual's GitHub profile no longer
appears several times when there is more than one GitHub
identity.
* Connection closed when job is executed
- drop add-missing-format-calls.patch (obsolete)
-------------------------------------------------------------------
Wed Aug 28 03:30:10 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.2.1:
* New features:
+ Improve loading and error indicators
+ Save URL to an individual's LinkedIn profile
+ Link to GitHub profile
+ Assign users to permission groups
+ Configuration for regular expressions in CORS
+ Dedicated queues in multi-tenancy
+ Organization aliases
* Bug fixes:
+ Consistent date format for job executions
+ Match source parameter fixed in recommendations
+ Organizations aliases in Python client
+ Change password form fixed
+ Refetch general settings after they are changed
+ Profile view displays correct recommendations
+ Match recommendations job fixed
- Drop patch use-correct-assertion-methods.patch, included.
- Refresh all other patches.
-------------------------------------------------------------------
Tue Feb 6 04:49:48 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.19.1:
* Fix "Table 'django_session' doesn't exist" error
* Unify identities with same source
* Use correct base URL for login and change password API calls (#851)
* Display individual's most recent organization
* CSRF token is only required on web requests
* Link to profile in individual cards (#837)
* Open calendar to the side of the date input (#838)
* Improved loading time when looking for organizations
* Gitdm identities importer
* Fix individual page not loading
* Recommendations for individuals modified after a given date (#813)
* Add individual to workspace from their profile page (#816)
* Cache individuals table data (#821)
* Strict criteria for merge recommendations (#812)
* Text field to update enrollment dates (#819)
* Improved organization selector (#820)
* API method to create a scheduled task
* Manage app settings from the user interface
* Remove tasks that fail to be scheduled
* Add Python 3.9 and drop 3.7 support
* Sub-domain affiliation error (#805)
- Refresh patches.
- Add patch use-correct-assertion-methods.patch:
* Use non-deprecated and non-removed assertion methods.
-------------------------------------------------------------------
Thu Jul 27 06:07:58 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.12.0:
* Job scheduler
- Refresh patch add-missing-format-calls.patch.
-------------------------------------------------------------------
Thu Jul 20 05:47:36 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.11.1, changes include:
* SortingHat as a service
* GraphQL client headers updated
* Migration command for SortingHat 0.7: sortinghat-admin migrate-old-database
* Groups table removed from the UI
* Fix search syntax link (#735)
* Fix outdated recommendation count (#733)
* Verify SSL option for client
* Multi-tenancy mode
* Drag and drop to enroll in teams
* Create account command
* Import identities automatically (#746)
* Order individuals by indentities (#732)
* Set top domain from UI (#729)
* Static files not included in wheel package
* Tenant selection in job fixed
* SortingHat database performance
* uWSGI threads and workers
* Performance improved for recommendations and merging jobs
* Multi-tenancy using headers
* Job timeouts
* Fix enrollment in individual's profile
* Edit a profile name with the pencil button (#773)
* Unreadable large numbers in pagination (#770)
* Sort jobs from newest to oldest (#769)
* Organization profiles
* Show when tables are loading (#772)
* Enrollment filter on organizations view
* ADD button doesn't affiliate individuals to organizations
* Email affiliation error (#793)
* Show hidden buttons when the mouse is over the table row (#787)
* Recommendations by individual (#779)
* Merge organizations (#571)
* Show an organization's members
- Drop patch no_decl_class_registry.patch:
* No longer required.
- Add patch allow-database-config-overrides.patch:
* Allow testing overrides of the database auth.
- Add patch add-missing-format-calls.patch:
* Fix up formatting of some tests.
-------------------------------------------------------------------
Sat Dec 3 00:58:41 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to version 0.7.23
* Update Poetry's package dependencies
- Update to version 0.7.22
* Update Poetry's package dependencies
-------------------------------------------------------------------
Sat Oct 29 01:20:39 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to version 0.7.21
* Update package dependencies
* Update jinja2 package and dev-dependencies.
* Update Poetry's package dependencies
- Clean up SPEC file to remove rpmlint warnings.
-------------------------------------------------------------------
Fri Oct 7 16:13:30 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to version 0.7.20
Bug fixes:
* [gitdm] Skip invalid format lines
* Gitdm parser won't fail reading files with an invalid format. Instead,
* it will ignore invalid content.
-------------------------------------------------------------------
Wed May 11 11:28:06 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Fix a bug in %%postun.
-------------------------------------------------------------------
Wed Apr 20 11:16:30 UTC 2022 - pgajdos@suse.com
- version update to 0.7.19
* no minor version changelog found
- modified patches
% no_decl_class_registry.patch (refreshed)
- python-mock is not required for build
-------------------------------------------------------------------
Thu Aug 5 15:20:24 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Add no_decl_class_registry.patch to make the package compatible
with SQLAlchemy 1.4 (gh#chaoss/grimoirelab-sortinghat#579).
-------------------------------------------------------------------
Thu May 27 12:39:34 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Upgrade 0.7.15
- Remove upstreamed python-sortinghat-gh-121-workaround.patch
-------------------------------------------------------------------
Fri Apr 23 21:42:58 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Don't build python36-* package (missing pandas)
-------------------------------------------------------------------
Thu Jun 4 07:19:33 UTC 2020 - pgajdos@suse.com
- specify database name trough %mysql_testserver_start parameter
- alternatives in loop
-------------------------------------------------------------------
Tue May 19 09:28:07 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
- %python3_only -> %python_alternative
-------------------------------------------------------------------
Tue Mar 17 14:11:53 UTC 2020 - pgajdos@suse.com
- version update to 0.7.7
* no minor version changelog found
-------------------------------------------------------------------
Tue Feb 11 15:58:25 UTC 2020 - pgajdos@suse.com
- %check: choose better database user name
-------------------------------------------------------------------
Fri Dec 6 18:01:12 UTC 2019 - pgajdos@suse.com
- run the testsuite against test mysqld server
-------------------------------------------------------------------
Mon Sep 23 13:57:05 UTC 2019 - pgajdos@suse.com
- version update to 0.7.6
**NOTICE: Database schema generated by SortingHat < 0.7.0 is still
compatible but older versions can have problems inserting UTF-8
characters of 4 bytes.
**Python 2.7 is no longer supported.
**NOTICE: Database schema generated by SortingHat < 0.6.0 are no longer
compatible. Please check "Compatibility between versions" section from
README.md file**
**NOTICE: Database schema generated by SortingHat < 0.5.0 are no longer
compatible. Please check "Compatibility between versions" section from
README.md file**
- added patches
https://github.com/chaoss/grimoirelab-sortinghat/issues/121
+ python-sortinghat-gh-121-workaround.patch
- python3-only package
-------------------------------------------------------------------
Tue Dec 4 12:54:29 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Thu Nov 9 21:01:40 UTC 2017 - sebix+novell.com@sebix.at
- initial package

168
python-sortinghat.spec Normal file
View File

@@ -0,0 +1,168 @@
#
# spec file for package python-sortinghat
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-sortinghat
Version: 1.4.0
Release: 0
Summary: A tool to manage identities
License: GPL-3.0-only
URL: https://github.com/grimoirelab/sortinghat
Source: https://github.com/chaoss/grimoirelab-sortinghat/archive/refs/tags/%{version}.tar.gz#/sortinghat-%{version}.tar.gz
# PATCH-FIX-OPENSUSE Allow overridding the database config
Patch0: allow-database-config-overrides.patch
BuildRequires: %{python_module base >= 3.9}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module poetry-core}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Django >= 4.2
Requires: python-Jinja2 >= 3.1
Requires: python-PyJWT
Requires: python-PyMySQL >= 0.7.0
Requires: python-PyYAML >= 3.12
Requires: python-SQLAlchemy >= 1.2
Requires: python-click >= 7.1
Requires: python-django-cors-headers >= 3.7
Requires: python-django-graphql-jwt >= 0.3
Requires: python-django-rq >= 2.3
Requires: python-django-treebeard >= 4.5
Requires: python-graphene >= 2.1.5
Requires: python-graphene-django
Requires: python-grimoirelab-toolkit >= 0.3
Requires: python-importlib-resources
Requires: python-mysqlclient >= 2.0
Requires: python-numpy
Requires: python-pandas >= 1.3
Requires: python-python-dateutil >= 2.8.0
Requires: python-requests >= 2.7
Requires: python-rq
Requires: python-setuptools
Requires: python-sgqlc
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module Jinja2 >= 3.1}
BuildRequires: %{python_module Django >= 4.2}
BuildRequires: %{python_module PyMySQL >= 0.7.0}
BuildRequires: %{python_module PyYAML >= 3.12}
BuildRequires: %{python_module SQLAlchemy >= 1.2}
BuildRequires: %{python_module click >= 7.1}
BuildRequires: %{python_module django-cors-headers >= 3.7}
BuildRequires: %{python_module django-graphql-jwt >= 0.3}
BuildRequires: %{python_module django-rq >= 2.3}
BuildRequires: %{python_module django-treebeard >= 4.5}
BuildRequires: %{python_module fakeredis}
BuildRequires: %{python_module graphene >= 2.1.5}
BuildRequires: %{python_module grimoirelab-toolkit >= 0.3}
BuildRequires: %{python_module httpretty >= 0.9.5}
BuildRequires: %{python_module importlib-resources}
BuildRequires: %{python_module mysqlclient >= 2.0}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pandas >= 1.3}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module python-dateutil >= 2.8.0}
BuildRequires: %{python_module requests >= 2.7}
BuildRequires: %{python_module rq}
BuildRequires: %{python_module sgqlc}
BuildRequires: mariadb-rpm-macros
# /SECTION
%python_subpackages
%description
A tool to manage identities.
Sorting Hat maintains an SQL database with identities coming
(potentially) from different sources. Identities corresponding to the
same real person can be merged in the same unique identity, with a
unique uuid. For each unique identity, a profile can be defined, with
the name and other data to show for the corresponding person by default.
In addition, each unique identity can be related to one or more
affiliations, for different time periods. This will usually correspond
to different organizations in which the person was employed during those
time periods.
Sorting Hat is a part of the GrimoireLab
toolset <https://grimoirelab.github.io>, which provides for Python
modules and scripts to analyze data sources with information about
software development, and allows to produce interactive dashboards to
visualize that information.
In the context of GrimoireLab, Sorting Hat is usually run after data is
retrieved with Perceval <https://github.com/grimmoirelab/perceval>,
to store the identities obtained into its database, and later merge them
into unique identities (and maybe affiliate them).
%prep
%autosetup -p1 -n grimoirelab-sortinghat-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/sortinghat
%python_clone -a %{buildroot}%{_bindir}/sortinghat-admin
%python_clone -a %{buildroot}%{_bindir}/sortinghatw
%python_clone -a %{buildroot}%{_bindir}/sortinghatd
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
exit_code=0
user='auth_db_user'
pass='auth_db_pass'
port=63306
run_dir=/tmp/mysql
#
# start the mariadb server
#
%mysql_testserver_start -u $user -p $pass -t $port
#
# running the test
#
export TEST_SORTINGHAT_DB_PORT=$port
export TEST_SORTINGHAT_DB_USER=$user
export TEST_SORTINGHAT_DB_PASSWORD=$pass
# Broken tests
rm tests/test_jobs.py
%python_exec manage.py test --settings=config.settings.config_testing
%python_exec manage.py test --settings=config.settings.config_testing_tenant
#
# stopping mariadb
#
%mysql_testserver_stop
exit $exit_code
%post
%python_install_alternative sortinghat sortinghat-admin sortinghatw sortinghatd
%postun
%python_uninstall_alternative sortinghat sortinghat-admin sortinghatw sortinghatd
%files %{python_files}
%doc NEWS README.md
%python_alternative %{_bindir}/sortinghat
%python_alternative %{_bindir}/sortinghatw
%python_alternative %{_bindir}/sortinghatd
%python_alternative %{_bindir}/sortinghat-admin
%{python_sitelib}/sortinghat
%{python_sitelib}/sortinghat-%{version}.dist-info
%changelog

3
sortinghat-0.19.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:20ec93c4c5951bfeb2cbd5f750209eaf1aa3ab57228676c98ebc00e2f92abc05
size 2441873

3
sortinghat-1.2.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e524a0ff1dccca14decfa9231a6e531fa94225ad1ffa7d491f3f9c728b223ffe
size 2255793

3
sortinghat-1.4.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3f05891207a8bad8e2c8b5d11b007e29ad3a12fea43cbb9d5b62cd736f481319
size 2270815

View File

@@ -0,0 +1,53 @@
From ad69dc80b8e8b4df49a3fe14e4a05ec31c7a67e8 Mon Sep 17 00:00:00 2001
From: Steve Kowalik <steven@wedontsleep.org>
Date: Tue, 6 Feb 2024 15:22:33 +1100
Subject: [PATCH] Switch to self.assertRaisesRegex()
assertRaisesRegexp() is a deprecated (and as of Python 3.12, removed)
alias of assertRaisesRegex(). Switch to it to avoid future problems.
Signed-off-by: Steve Kowalik <steven@wedontsleep.org>
---
tests/test_aux.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/test_aux.py b/tests/test_aux.py
index 86e421422..91a1c29c3 100644
--- a/tests/test_aux.py
+++ b/tests/test_aux.py
@@ -338,7 +338,7 @@ def test_dates_out_of_bounds(self):
expected = DATE_OUT_OF_BOUNDS_ERROR.format(type='start',
date=r'1800-01-01 00:00:00\+00:00')
- with self.assertRaisesRegexp(ValueError, expected):
+ with self.assertRaisesRegex(ValueError, expected):
_ = [r for r in merge_datetime_ranges(dates)]
# Case 2
@@ -349,7 +349,7 @@ def test_dates_out_of_bounds(self):
expected = DATE_OUT_OF_BOUNDS_ERROR.format(type='end',
date=r'2100-02-01 00:00:00\+00:00')
- with self.assertRaisesRegexp(ValueError, expected):
+ with self.assertRaisesRegex(ValueError, expected):
_ = [r for r in merge_datetime_ranges(dates)]
def test_dates_no_timezone(self):
@@ -361,7 +361,7 @@ def test_dates_no_timezone(self):
(datetime.datetime(1800, 1, 1, tzinfo=UTC), datetime.datetime(2010, 1, 1, tzinfo=UTC))
]
- with self.assertRaisesRegexp(TypeError, CANT_COMPARE_DATES_ERROR):
+ with self.assertRaisesRegex(TypeError, CANT_COMPARE_DATES_ERROR):
_ = [r for r in merge_datetime_ranges(dates)]
# Case 2
@@ -370,7 +370,7 @@ def test_dates_no_timezone(self):
(datetime.datetime(1900, 1, 1, tzinfo=UTC), datetime.datetime(2010, 1, 1))
]
- with self.assertRaisesRegexp(TypeError, CANT_COMPARE_DATES_ERROR):
+ with self.assertRaisesRegex(TypeError, CANT_COMPARE_DATES_ERROR):
_ = [r for r in merge_datetime_ranges(dates)]