mirror of https://github.com/snachodog/mybuddy.git
Add support and testing for Python 3.12
This commit is contained in:
parent
31f8f951ad
commit
9fc666dd2e
|
@ -11,7 +11,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [ '3.8', '3.9', '3.10', '3.11' ]
|
||||
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ./.github/actions/setup
|
||||
|
|
20
api/tests.py
20
api/tests.py
|
@ -602,7 +602,7 @@ class TagsAPITestCase(TestBase.BabyBuddyAPITestCaseBase):
|
|||
results_by_name = {r["name"]: r for r in results}
|
||||
|
||||
tag_data = results_by_name["new tag"]
|
||||
self.assertDictContainsSubset(data, tag_data)
|
||||
self.assertEqual(tag_data, tag_data | data)
|
||||
self.assertEqual(tag_data["slug"], "new-tag")
|
||||
self.assertTrue(tag_data["last_used"])
|
||||
|
||||
|
@ -618,7 +618,7 @@ class TagsAPITestCase(TestBase.BabyBuddyAPITestCaseBase):
|
|||
modified_data,
|
||||
)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertDictContainsSubset(modified_data, response.data)
|
||||
self.assertEqual(response.data, response.data | modified_data)
|
||||
|
||||
def test_delete(self):
|
||||
endpoint = f"{self.endpoint}a-name/"
|
||||
|
@ -861,15 +861,19 @@ class TestProfileAPITestCase(APITestCase):
|
|||
def test_get(self):
|
||||
response = self.client.get(self.endpoint)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertDictContainsSubset(
|
||||
{
|
||||
|
||||
self.assertEqual(
|
||||
response.data,
|
||||
response.data
|
||||
| {
|
||||
"language": "en-US",
|
||||
"timezone": "UTC",
|
||||
},
|
||||
response.data,
|
||||
)
|
||||
self.assertDictContainsSubset(
|
||||
{
|
||||
self.assertEqual(
|
||||
response.data["user"],
|
||||
response.data["user"]
|
||||
| {
|
||||
"id": 1,
|
||||
"username": "admin",
|
||||
"first_name": "",
|
||||
|
@ -877,9 +881,7 @@ class TestProfileAPITestCase(APITestCase):
|
|||
"email": "",
|
||||
"is_staff": True,
|
||||
},
|
||||
response.data["user"],
|
||||
)
|
||||
|
||||
# Test that api_key is in the mix and "some long string"
|
||||
self.assertIn("api_key", response.data)
|
||||
self.assertTrue(isinstance(response.data["api_key"], str))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
"""
|
||||
r"""
|
||||
.----------------.
|
||||
| .--------------. |
|
||||
| | ______ | |
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
"jquery": "^3.7.1",
|
||||
"masonry-layout": "^4.2.2",
|
||||
"npm-force-resolutions": "^0.0.10",
|
||||
"plotly.js": "^2.26.1",
|
||||
"plotly.js": "^2.27.0",
|
||||
"pulltorefreshjs": "^0.1.22",
|
||||
"pump": "^3.0.0",
|
||||
"sass": "^1.68.0",
|
||||
"stylelint": "^15.10.3",
|
||||
"sass": "^1.69.4",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-recommended-scss": "^13.0.0",
|
||||
"stylelint-order": "^6.0.3",
|
||||
"stylelint-scss": "^5.2.1"
|
||||
|
@ -1839,12 +1839,12 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/css-functions-list": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
|
||||
"integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
|
||||
"integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=12.22"
|
||||
"node": ">=12 || >=16"
|
||||
}
|
||||
},
|
||||
"node_modules/css-global-keywords": {
|
||||
|
@ -2724,15 +2724,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/file-entry-cache": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
|
||||
"integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
|
||||
"integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"flat-cache": "^3.0.4"
|
||||
"flat-cache": "^3.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10.12.0 || >=12.0.0"
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
|
@ -2946,22 +2946,23 @@
|
|||
}
|
||||
},
|
||||
"node_modules/flat-cache": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
|
||||
"integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
|
||||
"integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"flatted": "^3.1.0",
|
||||
"flatted": "^3.2.9",
|
||||
"keyv": "^4.5.3",
|
||||
"rimraf": "^3.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10.12.0 || >=12.0.0"
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
|
||||
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
|
||||
"version": "3.2.9",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
|
||||
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/flatten-vertex-data": {
|
||||
|
@ -5156,6 +5157,12 @@
|
|||
"js-yaml": "bin/js-yaml.js"
|
||||
}
|
||||
},
|
||||
"node_modules/json-buffer": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
||||
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/json-format": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-format/-/json-format-1.0.1.tgz",
|
||||
|
@ -5192,6 +5199,15 @@
|
|||
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/keyv": {
|
||||
"version": "4.5.4",
|
||||
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
||||
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"json-buffer": "3.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/kind-of": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
|
||||
|
@ -6835,9 +6851,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/plotly.js": {
|
||||
"version": "2.26.1",
|
||||
"resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.26.1.tgz",
|
||||
"integrity": "sha512-aZgY5NEbuwgsnbTNmMy3BXPkx/QK+wuSnnEWvEeeUnhEZK+fTKazx6zCsbImLPinOvQtTdOXH4LhqrTYcYd69g==",
|
||||
"version": "2.27.0",
|
||||
"resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.27.0.tgz",
|
||||
"integrity": "sha512-48LjCf+A7MmgNTPBBomYdIcFaY/oWjIdRT7k+qmXz9opcMCAJiBrpbslWyfmR8HwmTxJRGdeyoWWlO8AHkvq5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@plotly/d3": "3.8.1",
|
||||
|
@ -7956,9 +7972,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.68.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz",
|
||||
"integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==",
|
||||
"version": "1.69.4",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.69.4.tgz",
|
||||
"integrity": "sha512-+qEreVhqAy8o++aQfCJwp0sklr2xyEzkm9Pp/Igu9wNPoe7EZEQ8X/MBvvXggI2ql607cxKg/RKOwDj6pp2XDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chokidar": ">=3.0.0 <4.0.0",
|
||||
|
@ -8684,9 +8700,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"version": "15.10.3",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.3.tgz",
|
||||
"integrity": "sha512-aBQMMxYvFzJJwkmg+BUUg3YfPyeuCuKo2f+LOw7yYbU8AZMblibwzp9OV4srHVeQldxvSFdz0/Xu8blq2AesiA==",
|
||||
"version": "15.11.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
|
||||
"integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@csstools/css-parser-algorithms": "^2.3.1",
|
||||
|
@ -8696,12 +8712,12 @@
|
|||
"balanced-match": "^2.0.0",
|
||||
"colord": "^2.9.3",
|
||||
"cosmiconfig": "^8.2.0",
|
||||
"css-functions-list": "^3.2.0",
|
||||
"css-functions-list": "^3.2.1",
|
||||
"css-tree": "^2.3.1",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.1",
|
||||
"fastest-levenshtein": "^1.0.16",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"file-entry-cache": "^7.0.0",
|
||||
"global-modules": "^2.0.0",
|
||||
"globby": "^11.1.0",
|
||||
"globjoin": "^0.1.4",
|
||||
|
@ -8710,13 +8726,13 @@
|
|||
"import-lazy": "^4.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"known-css-properties": "^0.28.0",
|
||||
"known-css-properties": "^0.29.0",
|
||||
"mathml-tag-names": "^2.1.3",
|
||||
"meow": "^10.1.5",
|
||||
"micromatch": "^4.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.27",
|
||||
"postcss": "^8.4.28",
|
||||
"postcss-resolve-nested-selector": "^0.1.1",
|
||||
"postcss-safe-parser": "^6.0.0",
|
||||
"postcss-selector-parser": "^6.0.13",
|
||||
|
@ -8873,6 +8889,12 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint/node_modules/known-css-properties": {
|
||||
"version": "0.29.0",
|
||||
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
|
||||
"integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/stylelint/node_modules/mdn-data": {
|
||||
"version": "2.0.30",
|
||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
"jquery": "^3.7.1",
|
||||
"masonry-layout": "^4.2.2",
|
||||
"npm-force-resolutions": "^0.0.10",
|
||||
"plotly.js": "^2.26.1",
|
||||
"plotly.js": "^2.27.0",
|
||||
"pulltorefreshjs": "^0.1.22",
|
||||
"pump": "^3.0.0",
|
||||
"sass": "^1.68.0",
|
||||
"stylelint": "^15.10.3",
|
||||
"sass": "^1.69.4",
|
||||
"stylelint": "^15.11.0",
|
||||
"stylelint-config-recommended-scss": "^13.0.0",
|
||||
"stylelint-order": "^6.0.3",
|
||||
"stylelint-scss": "^5.2.1"
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
-i https://pypi.python.org/simple
|
||||
annotated-types==0.6.0 ; python_version >= '3.8'
|
||||
asgiref==3.7.2 ; python_version >= '3.7'
|
||||
boto3==1.28.62
|
||||
botocore==1.31.62 ; python_version >= '3.7'
|
||||
defusedxml==0.7.1 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
diff-match-patch==20230430 ; python_version >= '3.7'
|
||||
annotated-types==0.6.0; python_version >= '3.8'
|
||||
asgiref==3.7.2; python_version >= '3.7'
|
||||
boto3==1.28.68; python_version >= '3.7'
|
||||
botocore==1.31.68; python_version >= '3.7'
|
||||
defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
diff-match-patch==20230430; python_version >= '3.7'
|
||||
dj-database-url==2.1.0
|
||||
django==4.2.6
|
||||
django-appconf==1.0.5 ; python_version >= '3.6'
|
||||
django-axes==6.1.1
|
||||
django==4.2.6; python_version >= '3.8'
|
||||
django-appconf==1.0.5; python_version >= '3.6'
|
||||
django-axes==6.1.1; python_version >= '3.7'
|
||||
django-dbsettings==1.3.0
|
||||
django-filter==23.3
|
||||
django-filter==23.3; python_version >= '3.7'
|
||||
django-imagekit==5.0.0
|
||||
django-import-export==3.3.1
|
||||
django-qr-code==3.1.1
|
||||
django-storages==1.14.1
|
||||
django-taggit==4.0.0
|
||||
django-widget-tweaks==1.5.0
|
||||
djangorestframework==3.14.0
|
||||
et-xmlfile==1.1.0 ; python_version >= '3.6'
|
||||
faker==19.6.2
|
||||
gunicorn==21.2.0
|
||||
jmespath==1.0.1 ; python_version >= '3.7'
|
||||
django-import-export==3.3.1; python_version >= '3.8'
|
||||
django-qr-code==3.1.1; python_version >= '3.7'
|
||||
django-storages==1.14.2; python_version >= '3.7'
|
||||
django-taggit==4.0.0; python_version >= '3.6'
|
||||
django-widget-tweaks==1.5.0; python_version >= '3.8'
|
||||
djangorestframework==3.14.0; python_version >= '3.6'
|
||||
et-xmlfile==1.1.0; python_version >= '3.6'
|
||||
faker==19.11.0; python_version >= '3.8'
|
||||
gunicorn==21.2.0; python_version >= '3.5'
|
||||
jmespath==1.0.1; python_version >= '3.7'
|
||||
markuppy==1.14
|
||||
odfpy==1.4.1
|
||||
openpyxl==3.1.2
|
||||
packaging==23.2 ; python_version >= '3.7'
|
||||
packaging==23.2; python_version >= '3.7'
|
||||
pilkit==3.0
|
||||
pillow==10.0.1
|
||||
plotly==5.17.0
|
||||
psycopg2-binary==2.9.9
|
||||
pydantic==2.4.2 ; python_version >= '3.7'
|
||||
pydantic-core==2.10.1 ; python_version >= '3.7'
|
||||
python-dateutil==2.8.2 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
python-dotenv==1.0.0
|
||||
pillow==10.1.0; python_version >= '3.8'
|
||||
plotly==5.17.0; python_version >= '3.6'
|
||||
psycopg2-binary==2.9.9; python_version >= '3.7'
|
||||
pydantic==2.4.2; python_version >= '3.7'
|
||||
pydantic-core==2.10.1; python_version >= '3.7'
|
||||
python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
|
||||
python-dotenv==1.0.0; python_version >= '3.8'
|
||||
pytz==2023.3.post1
|
||||
pyyaml==6.0.1
|
||||
s3transfer==0.7.0 ; python_version >= '3.7'
|
||||
segno==1.5.2 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
setuptools==68.2.2 ; python_version >= '3.8'
|
||||
six==1.16.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
|
||||
sqlparse==0.4.4 ; python_version >= '3.5'
|
||||
tablib[html,ods,xls,xlsx,yaml]==3.5.0 ; python_version >= '3.8'
|
||||
tenacity==8.2.3 ; python_version >= '3.7'
|
||||
typing-extensions==4.8.0 ; python_version >= '3.8'
|
||||
uritemplate==4.1.1
|
||||
urllib3==2.0.6 ; python_version >= '3.10'
|
||||
whitenoise==6.5.0
|
||||
pyyaml==6.0.1; python_version >= '3.6'
|
||||
s3transfer==0.7.0; python_version >= '3.7'
|
||||
segno==1.5.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
|
||||
setuptools==68.2.2; python_version >= '3.8'
|
||||
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'
|
||||
sqlparse==0.4.4; python_version >= '3.5'
|
||||
tablib[html,ods,xls,xlsx,yaml]==3.5.0; python_version >= '3.8'
|
||||
tenacity==8.2.3; python_version >= '3.7'
|
||||
typing-extensions==4.8.0; python_version >= '3.8'
|
||||
uritemplate==4.1.1; python_version >= '3.6'
|
||||
urllib3==2.0.7; python_version >= '3.10'
|
||||
whitenoise==6.6.0; python_version >= '3.8'
|
||||
xlrd==2.0.1
|
||||
xlwt==1.3.0
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue