Skip to content

Commit

Permalink
new unit testing for eager loaded relations
Browse files Browse the repository at this point in the history
  • Loading branch information
joamag committed Apr 28, 2016
1 parent 0a5036f commit 8923c60
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
52 changes: 52 additions & 0 deletions src/quorum/test/mock.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,55 @@ class Car(quorum.Model):
brand = quorum.field()

variant = quorum.field()

garage = quorum.field(
type = quorum.reference(
"Garage",
name = "identifier"
),
eager = True
)

class Garage(quorum.Model):

identifier = quorum.field(
type = int,
index = True,
increment = True,
default = True
)

identifier_safe = quorum.field(
type = int,
index = True,
increment = True,
safe = True
)

name = quorum.field()

address = quorum.field(
type = quorum.reference(
"Address",
name = "identifier"
),
eager = True
)

class Address(quorum.Model):

identifier = quorum.field(
type = int,
index = True,
increment = True,
default = True
)

identifier_safe = quorum.field(
type = int,
index = True,
increment = True,
safe = True
)

street = quorum.field()
26 changes: 26 additions & 0 deletions src/quorum/test/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -375,15 +375,41 @@ def test_eager(self):
car.name = "Car"
car.save()

garage = mock.Garage()
garage.name = "Garage"
garage.save()

address = mock.Address()
address.street = "Address"
address.save()

person = mock.Person.get(identifier = 1)
person.car = car
person.save()

car = mock.Car.get(identifier = 1)
car.garage = garage
car.save()

garage = mock.Garage.get(identifier = 1)
garage.address = address
garage.save()

person = mock.Person.get(identifier = 1)

self.assertEqual(isinstance(person.car, quorum.Reference), True)
self.assertEqual(person.car.is_resolved(), True)
self.assertEqual(person.car.name, "Car")
self.assertEqual(person.car.garage.is_resolved(), True)
self.assertEqual(person.car.garage.name, "Garage")
self.assertEqual(person.car.garage.address.is_resolved(), True)
self.assertEqual(person.car.garage.address.street, "Address")

person = mock.Person.get(identifier = 1, map = True)

self.assertEqual(person["car"]["name"], "Car")
self.assertEqual(person["car"]["garage"]["name"], "Garage")
self.assertEqual(person["car"]["garage"]["address"]["street"], "Address")

person = mock.Person.get(identifier = 1)

Expand Down

0 comments on commit 8923c60

Please sign in to comment.