diff --git a/tests/modeltests/unmanaged_models/models.py b/tests/modeltests/unmanaged_models/models.py index ca9b05aca4..0c2cf500da 100644 --- a/tests/modeltests/unmanaged_models/models.py +++ b/tests/modeltests/unmanaged_models/models.py @@ -123,30 +123,3 @@ class Unmanaged2(models.Model): # table *will* be created (unless given a custom `through` as for C02 above). class Managed1(models.Model): mm = models.ManyToManyField(Unmanaged1) - -__test__ = {'API_TESTS':""" -The main test here is that the all the models can be created without any -database errors. We can also do some more simple insertion and lookup tests -whilst we're here to show that the second of models do refer to the tables from -the first set. - -# Insert some data into one set of models. ->>> a = A01.objects.create(f_a="foo", f_b=42) ->>> _ = B01.objects.create(fk_a=a, f_a="fred", f_b=1729) ->>> c = C01.objects.create(f_a="barney", f_b=1) ->>> c.mm_a = [a] - -# ... and pull it out via the other set. ->>> A02.objects.all() -[] ->>> b = B02.objects.all()[0] ->>> b - ->>> b.fk_a - ->>> C02.objects.filter(f_a=None) -[] ->>> C02.objects.filter(mm_a=a.id) -[] - -"""} diff --git a/tests/modeltests/unmanaged_models/tests.py b/tests/modeltests/unmanaged_models/tests.py index c5f14bd3df..dbbe848cce 100644 --- a/tests/modeltests/unmanaged_models/tests.py +++ b/tests/modeltests/unmanaged_models/tests.py @@ -1,9 +1,46 @@ from django.test import TestCase from django.db import connection from models import Unmanaged1, Unmanaged2, Managed1 +from models import A01, A02, B01, B02, C01, C02 + +class SimpleTests(TestCase): + + def test_simple(self): + """ + The main test here is that the all the models can be created without + any database errors. We can also do some more simple insertion and + lookup tests whilst we're here to show that the second of models do + refer to the tables from the first set. + """ + # Insert some data into one set of models. + a = A01.objects.create(f_a="foo", f_b=42) + B01.objects.create(fk_a=a, f_a="fred", f_b=1729) + c = C01.objects.create(f_a="barney", f_b=1) + c.mm_a = [a] + + # ... and pull it out via the other set. + a2 = A02.objects.all()[0] + self.assertTrue(isinstance(a2, A02)) + self.assertEqual(a2.f_a, "foo") + + b2 = B02.objects.all()[0] + self.assertTrue(isinstance(b2, B02)) + self.assertEqual(b2.f_a, "fred") + + self.assertTrue(isinstance(b2.fk_a, A02)) + self.assertEqual(b2.fk_a.f_a, "foo") + + self.assertEqual(list(C02.objects.filter(f_a=None)), []) + + resp = list(C02.objects.filter(mm_a=a.id)) + self.assertEqual(len(resp), 1) + + self.assertTrue(isinstance(resp[0], C02)) + self.assertEqual(resp[0].f_a, 'barney') + class ManyToManyUnmanagedTests(TestCase): - + def test_many_to_many_between_unmanaged(self): """ The intermediary table between two unmanaged models should not be created. @@ -11,7 +48,7 @@ class ManyToManyUnmanagedTests(TestCase): table = Unmanaged2._meta.get_field('mm').m2m_db_table() tables = connection.introspection.table_names() self.assert_(table not in tables, "Table '%s' should not exist, but it does." % table) - + def test_many_to_many_between_unmanaged_and_managed(self): """ An intermediary table between a managed and an unmanaged model should be created. @@ -19,4 +56,3 @@ class ManyToManyUnmanagedTests(TestCase): table = Managed1._meta.get_field('mm').m2m_db_table() tables = connection.introspection.table_names() self.assert_(table in tables, "Table '%s' does not exist." % table) - \ No newline at end of file