/tests/modeltests/unmanaged_models/tests.py
Python | 58 lines | 51 code | 2 blank | 5 comment | 0 complexity | ee954532da550d7562b74b646c06d6d4 MD5 | raw file
Possible License(s): BSD-3-Clause
- 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.
- """
- table = Unmanaged2._meta.get_field('mm').m2m_db_table()
- tables = connection.introspection.table_names()
- self.assertTrue(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.
- """
- table = Managed1._meta.get_field('mm').m2m_db_table()
- tables = connection.introspection.table_names()
- self.assertTrue(table in tables, "Table '%s' does not exist." % table)