1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
class GenericRelationshipTestCase:
def test_set_as_none(self, Event):
event = Event()
event.object = None
assert event.object is None
def test_set_manual_and_get(self, session, User, Event):
user = User()
session.add(user)
session.commit()
event = Event()
event.object_id = user.id
event.object_type = str(type(user).__name__)
assert event.object is None
session.add(event)
session.commit()
assert event.object == user
def test_set_and_get(self, session, User, Event):
user = User()
session.add(user)
session.commit()
event = Event(object=user)
assert event.object_id == user.id
assert event.object_type == type(user).__name__
session.add(event)
session.commit()
assert event.object == user
def test_compare_instance(self, session, User, Event):
user1 = User()
user2 = User()
session.add_all([user1, user2])
session.commit()
event = Event(object=user1)
session.add(event)
session.commit()
assert event.object == user1
assert event.object != user2
def test_compare_query(self, session, User, Event):
user1 = User()
user2 = User()
session.add_all([user1, user2])
session.commit()
event = Event(object=user1)
session.add(event)
session.commit()
q = session.query(Event)
assert q.filter_by(object=user1).first() is not None
assert q.filter_by(object=user2).first() is None
assert q.filter(Event.object == user2).first() is None
def test_compare_not_query(self, session, User, Event):
user1 = User()
user2 = User()
session.add_all([user1, user2])
session.commit()
event = Event(object=user1)
session.add(event)
session.commit()
q = session.query(Event)
assert q.filter(Event.object != user2).first() is not None
def test_compare_type(self, session, User, Event):
user1 = User()
user2 = User()
session.add_all([user1, user2])
session.commit()
event1 = Event(object=user1)
event2 = Event(object=user2)
session.add_all([event1, event2])
session.commit()
statement = Event.object.is_type(User)
q = session.query(Event).filter(statement)
assert q.first() is not None
|