summaryrefslogtreecommitdiff
path: root/tests/backends
diff options
context:
space:
mode:
Diffstat (limited to 'tests/backends')
-rw-r--r--tests/backends/base/test_creation.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/backends/base/test_creation.py b/tests/backends/base/test_creation.py
index 3e29961d21..6c98556f1e 100644
--- a/tests/backends/base/test_creation.py
+++ b/tests/backends/base/test_creation.py
@@ -1,5 +1,6 @@
import copy
import datetime
+import os
from unittest import mock
from django.db import DEFAULT_DB_ALIAS, connection, connections
@@ -107,6 +108,22 @@ class TestDbCreationTests(SimpleTestCase):
with mock.patch.object(creation, '_destroy_test_db'):
creation.destroy_test_db(old_database_name, verbosity=0)
+ @mock.patch.dict(os.environ, {'RUNNING_DJANGOS_TEST_SUITE': ''})
+ @mock.patch.object(BaseDatabaseCreation, 'mark_expected_failures_and_skips')
+ def test_mark_expected_failures_and_skips_call(self, mark_expected_failures_and_skips, *mocked_objects):
+ """
+ mark_expected_failures_and_skips() isn't called unless
+ RUNNING_DJANGOS_TEST_SUITE is 'true'.
+ """
+ test_connection = get_connection_copy()
+ creation = test_connection.creation_class(test_connection)
+ if connection.vendor == 'oracle':
+ # Don't close connection on Oracle.
+ creation.connection.close = mock.Mock()
+ with mock.patch.object(creation, '_create_test_db'):
+ creation.create_test_db(verbosity=0, autoclobber=True, serialize=False)
+ self.assertIs(mark_expected_failures_and_skips.called, False)
+
class TestDeserializeDbFromString(TransactionTestCase):
available_apps = ['backends']
@@ -188,3 +205,48 @@ class TestDeserializeDbFromString(TransactionTestCase):
data = connection.creation.serialize_db_to_string()
self.assertIn('"model": "backends.schoolclass"', data)
self.assertIn('"year": 1000', data)
+
+
+class SkipTestClass:
+ def skip_function(self):
+ pass
+
+
+def skip_test_function():
+ pass
+
+
+def expected_failure_test_function():
+ pass
+
+
+class TestMarkTests(SimpleTestCase):
+ def test_mark_expected_failures_and_skips(self):
+ test_connection = get_connection_copy()
+ creation = BaseDatabaseCreation(test_connection)
+ creation.connection.features.django_test_expected_failures = {
+ 'backends.base.test_creation.expected_failure_test_function',
+ }
+ creation.connection.features.django_test_skips = {
+ 'skip test class': {
+ 'backends.base.test_creation.SkipTestClass',
+ },
+ 'skip test function': {
+ 'backends.base.test_creation.skip_test_function',
+ },
+ }
+ creation.mark_expected_failures_and_skips()
+ self.assertIs(
+ expected_failure_test_function.__unittest_expecting_failure__,
+ True,
+ )
+ self.assertIs(SkipTestClass.__unittest_skip__, True)
+ self.assertEqual(
+ SkipTestClass.__unittest_skip_why__,
+ 'skip test class',
+ )
+ self.assertIs(skip_test_function.__unittest_skip__, True)
+ self.assertEqual(
+ skip_test_function.__unittest_skip_why__,
+ 'skip test function',
+ )