From 89f40e36246100df6a11316c31a76712ebc6c501 Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Tue, 26 Feb 2013 09:53:47 +0100 Subject: Merged regressiontests and modeltests into the test root. --- tests/initial_sql_regress/__init__.py | 0 tests/initial_sql_regress/models.py | 10 ++++++++++ tests/initial_sql_regress/sql/simple.sql | 11 +++++++++++ tests/initial_sql_regress/tests.py | 28 ++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 tests/initial_sql_regress/__init__.py create mode 100644 tests/initial_sql_regress/models.py create mode 100644 tests/initial_sql_regress/sql/simple.sql create mode 100644 tests/initial_sql_regress/tests.py (limited to 'tests/initial_sql_regress') diff --git a/tests/initial_sql_regress/__init__.py b/tests/initial_sql_regress/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/initial_sql_regress/models.py b/tests/initial_sql_regress/models.py new file mode 100644 index 0000000000..76de6d3bcb --- /dev/null +++ b/tests/initial_sql_regress/models.py @@ -0,0 +1,10 @@ +""" +Regression tests for initial SQL insertion. +""" + +from django.db import models + + +class Simple(models.Model): + name = models.CharField(max_length = 50) + diff --git a/tests/initial_sql_regress/sql/simple.sql b/tests/initial_sql_regress/sql/simple.sql new file mode 100644 index 0000000000..d82f8381af --- /dev/null +++ b/tests/initial_sql_regress/sql/simple.sql @@ -0,0 +1,11 @@ +-- a comment +INSERT INTO initial_sql_regress_simple (name) VALUES ('John'); -- another comment +INSERT INTO initial_sql_regress_simple (name) VALUES ('-- Comment Man'); +INSERT INTO initial_sql_regress_simple (name) VALUES ('Paul'); +INSERT INTO + initial_sql_regress_simple (name) VALUES ('Ringo'); +INSERT INTO initial_sql_regress_simple (name) VALUES ('George'); +INSERT INTO initial_sql_regress_simple (name) VALUES ('Miles O''Brien'); +INSERT INTO initial_sql_regress_simple (name) VALUES ('Semicolon;Man'); +INSERT INTO initial_sql_regress_simple (name) VALUES ('This line has a Windows line ending'); + diff --git a/tests/initial_sql_regress/tests.py b/tests/initial_sql_regress/tests.py new file mode 100644 index 0000000000..39d8921061 --- /dev/null +++ b/tests/initial_sql_regress/tests.py @@ -0,0 +1,28 @@ +from django.core.management.color import no_style +from django.core.management.sql import custom_sql_for_model +from django.db import connections, DEFAULT_DB_ALIAS +from django.test import TestCase + +from .models import Simple + + +class InitialSQLTests(TestCase): + # The format of the included SQL file for this test suite is important. + # It must end with a trailing newline in order to test the fix for #2161. + + def test_initial_sql(self): + # As pointed out by #14661, test data loaded by custom SQL + # can't be relied upon; as a result, the test framework flushes the + # data contents before every test. This test validates that this has + # occurred. + self.assertEqual(Simple.objects.count(), 0) + + def test_custom_sql(self): + # Simulate the custom SQL loading by syncdb + connection = connections[DEFAULT_DB_ALIAS] + custom_sql = custom_sql_for_model(Simple, no_style(), connection) + self.assertEqual(len(custom_sql), 8) + cursor = connection.cursor() + for sql in custom_sql: + cursor.execute(sql) + self.assertEqual(Simple.objects.count(), 8) -- cgit v1.3