From 2a93cd3b402593e35387822f5d3fa380efd06ec0 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 18 Oct 2019 18:56:08 +0200 Subject: [PATCH 1/3] Use force_str instead of force_text --- pytest_django_test/db_helpers.py | 8 ++++---- tests/test_fixtures.py | 26 +++++++++++++------------- tests/test_urls.py | 4 ++-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pytest_django_test/db_helpers.py b/pytest_django_test/db_helpers.py index dcee3c3da..c39771f5f 100644 --- a/pytest_django_test/db_helpers.py +++ b/pytest_django_test/db_helpers.py @@ -5,7 +5,7 @@ import pytest from django.conf import settings -from django.utils.encoding import force_text +from django.utils.encoding import force_str # Construct names for the "inner" database used in runpytest tests @@ -66,14 +66,14 @@ def drop_database(name=TEST_DB_NAME): if db_engine == "postgresql_psycopg2": r = run_cmd("psql", "postgres", "-c", "DROP DATABASE %s" % name) - assert "DROP DATABASE" in force_text( + assert "DROP DATABASE" in force_str( r.std_out - ) or "does not exist" in force_text(r.std_err) + ) or "does not exist" in force_str(r.std_err) return if db_engine == "mysql": r = run_mysql("-e", "DROP DATABASE %s" % name) - assert "database doesn't exist" in force_text(r.std_err) or r.status_code == 0 + assert "database doesn't exist" in force_str(r.std_err) or r.status_code == 0 return assert db_engine == "sqlite3", "%s cannot be tested properly!" % db_engine diff --git a/tests/test_fixtures.py b/tests/test_fixtures.py index 07f401574..bc88ec40d 100644 --- a/tests/test_fixtures.py +++ b/tests/test_fixtures.py @@ -15,7 +15,7 @@ from django.db import connection, transaction from django.test.client import Client, RequestFactory from django.test.testcases import connections_support_transactions -from django.utils.encoding import force_text +from django.utils.encoding import force_str from pytest_django.lazy_django import get_django_version from pytest_django_test.app.models import Item @@ -42,13 +42,13 @@ def test_client(client): def test_admin_client(admin_client): assert isinstance(admin_client, Client) resp = admin_client.get("/admin-required/") - assert force_text(resp.content) == "You are an admin" + assert force_str(resp.content) == "You are an admin" def test_admin_client_no_db_marker(admin_client): assert isinstance(admin_client, Client) resp = admin_client.get("/admin-required/") - assert force_text(resp.content) == "You are an admin" + assert force_str(resp.content) == "You are an admin" @pytest.mark.django_db @@ -328,10 +328,10 @@ def test_settings_before(self): TestLiveServer._test_settings_before_run = True def test_url(self, live_server): - assert live_server.url == force_text(live_server) + assert live_server.url == force_str(live_server) def test_change_settings(self, live_server, settings): - assert live_server.url == force_text(live_server) + assert live_server.url == force_str(live_server) def test_settings_restored(self): """Ensure that settings are restored after test_settings_before.""" @@ -356,20 +356,20 @@ def test_transactions(self, live_server): def test_db_changes_visibility(self, live_server): response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 0" + assert force_str(response_data) == "Item count: 0" Item.objects.create(name="foo") response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 1" + assert force_str(response_data) == "Item count: 1" def test_fixture_db(self, db, live_server): Item.objects.create(name="foo") response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 1" + assert force_str(response_data) == "Item count: 1" def test_fixture_transactional_db(self, transactional_db, live_server): Item.objects.create(name="foo") response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 1" + assert force_str(response_data) == "Item count: 1" @pytest.fixture def item(self): @@ -386,7 +386,7 @@ def item_db(self, db): def test_item_db(self, item_db, live_server): response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 1" + assert force_str(response_data) == "Item count: 1" @pytest.fixture def item_transactional_db(self, transactional_db): @@ -394,7 +394,7 @@ def item_transactional_db(self, transactional_db): def test_item_transactional_db(self, item_transactional_db, live_server): response_data = urlopen(live_server + "/item_count/").read() - assert force_text(response_data) == "Item count: 1" + assert force_str(response_data) == "Item count: 1" @pytest.mark.django_project( extra_settings=""" @@ -418,7 +418,7 @@ def test_serve_static_with_staticfiles_app(self, django_testdir, settings): django_testdir.create_test_module( """ import pytest - from django.utils.encoding import force_text + from django.utils.encoding import force_str try: from urllib2 import urlopen, HTTPError @@ -431,7 +431,7 @@ def test_a(self, live_server, settings): in settings.INSTALLED_APPS) response_data = urlopen( live_server + '/static/a_file.txt').read() - assert force_text(response_data) == 'bla\\n' + assert force_str(response_data) == 'bla\\n' """ ) result = django_testdir.runpytest_subprocess("--tb=short", "-v") diff --git a/tests/test_urls.py b/tests/test_urls.py index 8067f1359..9001fddce 100644 --- a/tests/test_urls.py +++ b/tests/test_urls.py @@ -1,6 +1,6 @@ import pytest from django.conf import settings -from django.utils.encoding import force_text +from django.utils.encoding import force_str @pytest.mark.urls("pytest_django_test.urls_overridden") @@ -16,7 +16,7 @@ def test_urls(): @pytest.mark.urls("pytest_django_test.urls_overridden") def test_urls_client(client): response = client.get("/overridden_url/") - assert force_text(response.content) == "Overridden urlconf works!" + assert force_str(response.content) == "Overridden urlconf works!" def test_urls_cache_is_cleared(testdir): From 5b968e1f2f4370532728301e075dafd94d543aca Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 18 Oct 2019 20:15:56 +0200 Subject: [PATCH 2/3] Use @six.python_2_unicode_compatible with LiveServer --- pytest_django/live_server_helper.py | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/pytest_django/live_server_helper.py b/pytest_django/live_server_helper.py index 3a5dd084e..07cdf5b5d 100644 --- a/pytest_django/live_server_helper.py +++ b/pytest_django/live_server_helper.py @@ -1,6 +1,9 @@ import sys +import six + +@six.python_2_unicode_compatible class LiveServer(object): """The liveserver fixture @@ -70,21 +73,11 @@ def stop(self): def url(self): return "http://%s:%s" % (self.thread.host, self.thread.port) - if sys.version_info < (3, 0): - - def __unicode__(self): - return self.url - - def __add__(self, other): - return unicode(self) + other # noqa: pyflakes on python3 - - else: - - def __str__(self): - return self.url + def __str__(self): + return self.url - def __add__(self, other): - return str(self) + other + def __add__(self, other): + return "%s%s" % (self, other) def __repr__(self): return "" % self.url From d4191c1da628629b9ab98485204bb915c0aceba8 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 18 Oct 2019 20:23:08 +0200 Subject: [PATCH 3/3] lint --- pytest_django/live_server_helper.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pytest_django/live_server_helper.py b/pytest_django/live_server_helper.py index 07cdf5b5d..94ded3315 100644 --- a/pytest_django/live_server_helper.py +++ b/pytest_django/live_server_helper.py @@ -1,5 +1,3 @@ -import sys - import six