Esempio n. 1
0
 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
Esempio n. 2
0
    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