mirror of
https://github.com/PyMySQL/mysqlclient.git
synced 2025-08-15 02:54:29 +08:00
CI: Update Django test workflow (#610)
This commit is contained in:
32
.github/workflows/django.yaml
vendored
32
.github/workflows/django.yaml
vendored
@ -2,15 +2,22 @@ name: Django compat test
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
name: "Run Django LTS test suite"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
PIP_NO_PYTHON_VERSION_WARNING: 1
|
||||||
|
PIP_DISABLE_PIP_VERSION_CHECK: 1
|
||||||
|
DJANGO_VERSION: "3.2.19"
|
||||||
steps:
|
steps:
|
||||||
- name: Start MySQL
|
- name: Start MySQL
|
||||||
run: |
|
run: |
|
||||||
sudo systemctl start mysql.service
|
sudo systemctl start mysql.service
|
||||||
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -proot mysql
|
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -proot mysql
|
||||||
|
mysql -uroot -proot -e "set global innodb_flush_log_at_trx_commit=0;"
|
||||||
mysql -uroot -proot -e "CREATE USER 'scott'@'%' IDENTIFIED BY 'tiger'; GRANT ALL ON *.* TO scott;"
|
mysql -uroot -proot -e "CREATE USER 'scott'@'%' IDENTIFIED BY 'tiger'; GRANT ALL ON *.* TO scott;"
|
||||||
mysql -uroot -proot -e "CREATE DATABASE django_default; CREATE DATABASE django_other;"
|
mysql -uroot -proot -e "CREATE DATABASE django_default; CREATE DATABASE django_other;"
|
||||||
|
|
||||||
@ -19,27 +26,28 @@ jobs:
|
|||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
# https://www.mail-archive.com/django-updates@googlegroups.com/msg209056.html
|
# Django 3.2.9+ supports Python 3.10
|
||||||
python-version: "3.11"
|
# https://docs.djangoproject.com/ja/3.2/releases/3.2/
|
||||||
|
python-version: "3.10"
|
||||||
|
cache: "pip"
|
||||||
|
cache-dependency-path: "ci/django-requirements.txt"
|
||||||
|
|
||||||
- name: Install mysqlclient
|
- name: Install mysqlclient
|
||||||
env:
|
|
||||||
PIP_NO_PYTHON_VERSION_WARNING: 1
|
|
||||||
PIP_DISABLE_PIP_VERSION_CHECK: 1
|
|
||||||
run: |
|
run: |
|
||||||
pip install -r requirements.txt
|
#pip install -r requirements.txt
|
||||||
|
#pip install mysqlclient # Use stable version
|
||||||
pip install .
|
pip install .
|
||||||
# pip install mysqlclient # Use stable version
|
|
||||||
|
|
||||||
- name: Run Django test
|
- name: Setup Django
|
||||||
env:
|
|
||||||
DJANGO_VERSION: "3.2.19"
|
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get install libmemcached-dev
|
sudo apt-get install libmemcached-dev
|
||||||
wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz
|
wget https://github.com/django/django/archive/${DJANGO_VERSION}.tar.gz
|
||||||
tar xf ${DJANGO_VERSION}.tar.gz
|
tar xf ${DJANGO_VERSION}.tar.gz
|
||||||
cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/
|
cp ci/test_mysql.py django-${DJANGO_VERSION}/tests/
|
||||||
|
cd django-${DJANGO_VERSION}
|
||||||
|
pip install . -r tests/requirements/py3.txt
|
||||||
|
|
||||||
|
- name: Run Django test
|
||||||
|
run: |
|
||||||
cd django-${DJANGO_VERSION}/tests/
|
cd django-${DJANGO_VERSION}/tests/
|
||||||
pip install ..
|
|
||||||
pip install -r requirements/py3.txt
|
|
||||||
PYTHONPATH=.. python3 ./runtests.py --settings=test_mysql
|
PYTHONPATH=.. python3 ./runtests.py --settings=test_mysql
|
||||||
|
4
Makefile
4
Makefile
@ -17,5 +17,5 @@ clean:
|
|||||||
|
|
||||||
.PHONY: check
|
.PHONY: check
|
||||||
check:
|
check:
|
||||||
ruff .
|
ruff *.py src ci
|
||||||
black *.py src
|
black *.py src ci
|
||||||
|
@ -19,7 +19,7 @@ DATABASES = {
|
|||||||
"HOST": "127.0.0.1",
|
"HOST": "127.0.0.1",
|
||||||
"USER": "scott",
|
"USER": "scott",
|
||||||
"PASSWORD": "tiger",
|
"PASSWORD": "tiger",
|
||||||
"TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"},
|
"TEST": {"CHARSET": "utf8mb3", "COLLATION": "utf8mb3_general_ci"},
|
||||||
},
|
},
|
||||||
"other": {
|
"other": {
|
||||||
"ENGINE": "django.db.backends.mysql",
|
"ENGINE": "django.db.backends.mysql",
|
||||||
@ -27,7 +27,7 @@ DATABASES = {
|
|||||||
"HOST": "127.0.0.1",
|
"HOST": "127.0.0.1",
|
||||||
"USER": "scott",
|
"USER": "scott",
|
||||||
"PASSWORD": "tiger",
|
"PASSWORD": "tiger",
|
||||||
"TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"},
|
"TEST": {"CHARSET": "utf8mb3", "COLLATION": "utf8mb3_general_ci"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,3 +37,5 @@ SECRET_KEY = "django_tests_secret_key"
|
|||||||
PASSWORD_HASHERS = [
|
PASSWORD_HASHERS = [
|
||||||
"django.contrib.auth.hashers.MD5PasswordHasher",
|
"django.contrib.auth.hashers.MD5PasswordHasher",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
||||||
|
@ -66,7 +66,7 @@ class BaseCursor:
|
|||||||
self.connection = connection
|
self.connection = connection
|
||||||
self.description = None
|
self.description = None
|
||||||
self.description_flags = None
|
self.description_flags = None
|
||||||
self.rowcount = -1
|
self.rowcount = 0
|
||||||
self.arraysize = 1
|
self.arraysize = 1
|
||||||
self._executed = None
|
self._executed = None
|
||||||
|
|
||||||
@ -78,8 +78,10 @@ class BaseCursor:
|
|||||||
def _discard(self):
|
def _discard(self):
|
||||||
self.description = None
|
self.description = None
|
||||||
self.description_flags = None
|
self.description_flags = None
|
||||||
self.rowcount = -1
|
# Django uses some member after __exit__.
|
||||||
self.lastrowid = None
|
# So we keep rowcount and lastrowid here. They are cleared in Cursor._query().
|
||||||
|
# self.rowcount = 0
|
||||||
|
# self.lastrowid = None
|
||||||
self._rows = None
|
self._rows = None
|
||||||
self.rownumber = None
|
self.rownumber = None
|
||||||
|
|
||||||
@ -323,6 +325,8 @@ class BaseCursor:
|
|||||||
def _query(self, q):
|
def _query(self, q):
|
||||||
db = self._get_db()
|
db = self._get_db()
|
||||||
self._result = None
|
self._result = None
|
||||||
|
self.rowcount = None
|
||||||
|
self.lastrowid = None
|
||||||
db.query(q)
|
db.query(q)
|
||||||
self._do_get_result(db)
|
self._do_get_result(db)
|
||||||
self._post_get_result()
|
self._post_get_result()
|
||||||
|
Reference in New Issue
Block a user