Ejemplo n.º 1
0
    def test_clone_with_relation(self):

        clone = models.clone(self.vehicle,
                             Vehicle.owner,
                             paint="blue",
                             options=self.vehicle.options,
                             parts=self.vehicle.parts)
        db.add(clone)
        db.flush()

        self.assertNotEqual(clone, self.vehicle)
        self.assertNotEqual(clone.as_dict(), self.vehicle.as_dict())
        self.assertNotEqual(clone.id, self.vehicle.id)
        self.assertEqual(clone.paint, "blue")
        self.assertEqual(clone.name, self.vehicle.name)
        clone.paint = "red"

        self.assertIsNot(clone.owner, self.vehicle.owner)
        self.assertNotEqual(clone.owner.as_dict(),
                            self.vehicle.owner.as_dict())
        self.assertNotEqual(clone.owner.id, self.vehicle.owner.id)
        self.assertEqual(clone.owner.first_name, self.vehicle.owner.first_name)
        self.assertEqual(clone.owner.last_name, self.vehicle.owner.last_name)

        self.assertEqual(clone.options, self.vehicle.options)
        self.assertEqual(clone.parts, self.vehicle.parts)
Ejemplo n.º 2
0
    def test_shallow_clone(self):
        clone = models.clone(self.vehicle)
        db.add(clone)
        db.flush()

        self.assertNotEqual(clone, self.vehicle)
        self.assertNotEqual(clone.as_dict(), self.vehicle.as_dict())
        self.assertNotEqual(clone.id, self.vehicle.id)
        self.assertEqual(clone.name, self.vehicle.name)
        # self.assertEqual(models.model_to_dict(clone), models.model_to_dict(self.vehicle))
        self.assertIsNone(clone.owner)
        self.assertEqual(clone.options, [])
        self.assertEqual(clone.parts, [])
Ejemplo n.º 3
0
    def test_clone_list_relation(self):

        clone = models.clone(self.vehicle, Vehicle.options)
        db.add(clone)
        db.flush()

        self.assertNotEqual(clone, self.vehicle)
        self.assertNotEqual(clone.as_dict(), self.vehicle.as_dict())
        self.assertNotEqual(clone.id, self.vehicle.id)

        for cloned, orig in zip(clone.options, self.vehicle.options):
            self.assertNotEqual(cloned, orig)
            self.assertNotEqual(cloned.as_dict(), orig.as_dict())
            self.assertNotEqual(cloned.id, orig.id)
Ejemplo n.º 4
0
    def test_clone_with_relation_options(self):

        clone = models.clone(self.vehicle,
                             make_args(Vehicle.owner, first_name="test"))
        db.add(clone)
        db.flush()

        self.assertNotEqual(clone, self.vehicle)
        self.assertNotEqual(clone.as_dict(), self.vehicle.as_dict())
        self.assertNotEqual(clone.id, self.vehicle.id)

        self.assertNotEqual(clone.owner, self.vehicle.owner)
        self.assertNotEqual(clone.owner.as_dict(),
                            self.vehicle.owner.as_dict())
        self.assertNotEqual(clone.owner.id, self.vehicle.owner.id)
        self.assertEqual(clone.owner.first_name, "test")
Ejemplo n.º 5
0
    def test_shallow_clone(self):
        clone = models.clone(self.vehicle)
        db.add(clone)
        db.flush()

        self.assertNotEqual(clone, self.vehicle)
        self.assertNotEqual(clone.as_dict(), self.vehicle.as_dict())
        self.assertNotEqual(clone.id, self.vehicle.id)
        self.assertEqual(clone.is_used, self.vehicle.is_used)
        self.assertEqual(clone.msrp, self.vehicle.msrp)
        self.assertEqual(clone.name, self.vehicle.name)
        self.assertEqual(clone.paint, self.vehicle.paint)
        self.assertEqual(clone.type, self.vehicle.type)
        self.assertIsNone(clone.owner)
        self.assertEqual(clone.options, [])
        self.assertEqual(clone.parts, [])
Ejemplo n.º 6
0
    def test_clone_with_composite(self):
        business = Business(
            name="test",
            location=Address(street="street 1", state="state 1", zip="zip 1"),
            other_location=Address(street="street 2", state="state 2", zip="zip 2"),
        )

        clone = models.clone(business)

        self.assertNotEqual(clone, business)
        self.assertDictEqual(models.model_to_dict(clone), models.model_to_dict(business))
        self.assertNotEqual(id(clone.location), id(business.location))
        self.assertNotEqual(id(clone.other_location), id(business.other_location))

        self.assertEqual(clone.location, business.location)
        self.assertEqual(clone.other_location, business.other_location)
Ejemplo n.º 7
0
 def test_clone_none(self):
     self.assertIsNone(models.clone(None))