def test_invalidonetoone(self): """ Validates that if a one-to-one is used as a one-to-many an exception will be raised """ machine = TestMachine() machine.name = 'machine' machine.save() self.assertIsNone(machine.one, 'There should not be any disk(s)') disk1 = TestDisk() disk1.name = 'disk1' disk1.one = machine disk1.save() self.assertEqual(machine.one, disk1, 'The correct disk should be returned') disk2 = TestDisk() disk2.name = 'disk2' disk2.one = machine disk2.save() with self.assertRaises(InvalidRelationException): _ = machine.one
def test_1_to_1(self): """ Validates whether 1-to-1 relations work correct """ machine = TestMachine() machine.name = 'machine' machine.save() self.assertIsNone(machine.one, 'The machine should not have a reverse disk relation') self.assertIsNone(machine.one_guid, 'The machine should have an empty disk _guid property') disk = TestDisk() disk.name = 'test' disk.one = machine disk.save() self.assertIsNotNone(machine.one, 'The machine should have a reverse disk relation') self.assertEqual(machine.one.name, 'test', 'The reverse 1-to-1 relation should work') self.assertEqual(disk.one.name, 'machine', 'The normal 1-to-1 relation should work') self.assertEqual(machine.one_guid, disk.guid, 'The reverse disk should be the correct one') with self.assertRaises(RuntimeError): machine.one = disk