Source code for gsi.tests.test_signals
from django.test import TestCase
from ..models import Tile, Area
[docs]class GsiSignalsTests(TestCase):
"""Tests the signals for the gsi app."""
[docs] def setUp(self):
"""We set the initial data."""
tile_1 = Tile.objects.create(name='tile_1')
tile_2 = Tile.objects.create(name='tile_2')
tile_3 = Tile.objects.create(name='tile_3')
area_1 = Area(name='area_1')
area_1.save()
area_1.tiles.add(tile_1)
area_1.tiles.add(tile_2)
area_1.tiles.add(tile_3)
[docs] def test_added_update_area_for_each_tile(self):
"""The test signal that adds a new tile to the Area model when creating the new tiles"""
self.assertEqual(3, Tile.objects.all().count())
self.assertEqual(4, Area.objects.all().count())
tile, created = Tile.objects.get_or_create(name='test1')
self.assertEqual(4, Tile.objects.all().count())
self.assertEqual(5, Area.objects.all().count())
self.assertEqual(tile.name, Area.objects.get(name='test1').name)
area = Area.objects.get(name='test1')
self.assertEqual(tile, area.tiles.get())
[docs] def test_remove_empty_area_by_removing_tile(self):
"""The test signal that removes the object Area if removing all the tiles from the object Area"""
self.assertEqual(3, Tile.objects.all().count())
self.assertEqual(4, Area.objects.all().count())
tile1, created1 = Tile.objects.get_or_create(name='test1')
tile2, created2 = Tile.objects.get_or_create(name='test2')
self.assertEqual(5, Tile.objects.all().count())
self.assertEqual(6, Area.objects.all().count())
self.assertEqual(tile1.name, Area.objects.get(name='test1').name)
self.assertEqual(tile2.name, Area.objects.get(name='test2').name)
tile1.delete()
self.assertEqual(4, Tile.objects.all().count())
self.assertEqual(5, Area.objects.all().count())
self.assertEqual(tile2.name, Area.objects.get(name='test2').name)
tile2.delete()
self.assertEqual(3, Tile.objects.all().count())
self.assertEqual(4, Area.objects.all().count())