示例#1
0
def apply_go_story(dog: Dog, context: str, now: datetime) -> None:
    create_story(dog)
    add_dog_action_event(dog_from=dog,
                         dog_to=None,
                         context=context,
                         type=DogActionEventType.GO_STORY,
                         created_at=now)
示例#2
0
def apply_meet_another_random_dog(dog: Dog, another_dog: Dog, context: str,
                                  now: datetime) -> bool:
    if another_dog is not None and another_dog.id != dog.id:
        add_dog_action_event(dog_from=dog,
                             dog_to=another_dog,
                             context=context,
                             type=DogActionEventType.MEET_ANOTHER_DOG,
                             created_at=now)
        return True
    else:
        return False
示例#3
0
def apply_find_tennis_ball(dog: Dog, context: str, now: datetime) -> None:
    # account level
    account: Account = dog.account
    account.number_tennis_ball = account.number_tennis_ball + 1
    account.save()
    # dog action level
    add_dog_action_event(dog_from=dog,
                         dog_to=None,
                         context=context,
                         type=DogActionEventType.FIND_TENNIS_BALL,
                         created_at=now)
示例#4
0
def apply_find_fitness_cookie(dog: Dog, context: str, now: datetime) -> None:
    # account level
    account: Account = dog.account
    account.number_fitness_cookie = account.number_fitness_cookie + 1
    account.save()
    # dog action level
    add_dog_action_event(dog_from=dog,
                         dog_to=None,
                         context=context,
                         type=DogActionEventType.FIND_FITNESS_COOKIE,
                         created_at=now)
示例#5
0
def apply_find_magic_bone(dog: Dog, context: str, now: datetime) -> None:
    # account level
    account: Account = dog.account
    account.number_magic_bone = account.number_magic_bone + 1
    account.save()
    # dog action level
    add_dog_action_event(dog_from=dog,
                         dog_to=None,
                         context=context,
                         type=DogActionEventType.FIND_MAGIC_BONE,
                         created_at=now)
示例#6
0
 def test_add_dog_action_event(self):
     event1: DogActionEvent = add_dog_action_event(
         fetch_dog('id_public_1'), fetch_dog('id_public_2'), 'TEST_CONTEXT',
         'TEST_TYPE', datetime(year=2000, month=1, day=3, tzinfo=UTC))
     self.assertNotEqual(event1.id, None)
     self.assertEqual(event1,
                      DogActionEvent.objects.filter(id=event1.id).first())
     self.assertEqual(1, DogActionEvent.objects.count())
     event2: DogActionEvent = add_dog_action_event(
         fetch_dog('id_public_1'), None, 'TEST_CONTEXT', 'TEST_TYPE',
         datetime(year=2000, month=1, day=3, tzinfo=UTC))
     self.assertNotEqual(event2.id, None)
     self.assertEqual(event2,
                      DogActionEvent.objects.filter(id=event2.id).first())
     self.assertEqual(2, DogActionEvent.objects.count())