Beispiel #1
0
    def test_date_logic(self) -> None:
        UserPresence.objects.all().delete()

        user_profile = self.example_user('hamlet')
        email = user_profile.email
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assertEqual(len(presence_dct), 0)

        self.login(email)
        result = self.client_post("/json/users/me/presence",
                                  {'status': 'active'})
        self.assert_json_success(result)

        slim_presence = False
        presence_dct = get_status_dict_by_realm(user_profile.realm_id,
                                                slim_presence)
        self.assertEqual(len(presence_dct), 1)
        self.assertEqual(presence_dct[email]['website']['status'], 'active')

        slim_presence = True
        presence_dct = get_status_dict_by_realm(user_profile.realm_id,
                                                slim_presence)
        self.assertEqual(len(presence_dct), 1)
        self.assertEqual(
            presence_dct[str(user_profile.id)]['website']['status'], 'active')

        def back_date(num_weeks: int) -> None:
            user_presence = UserPresence.objects.filter(
                user_profile=user_profile)[0]
            user_presence.timestamp = timezone_now() - datetime.timedelta(
                weeks=num_weeks)
            user_presence.save()

        # Simulate the presence being a week old first.  Nothing should change.
        back_date(num_weeks=1)
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assertEqual(len(presence_dct), 1)

        # If the UserPresence row is three weeks old, we ignore it.
        back_date(num_weeks=3)
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assertEqual(len(presence_dct), 0)
Beispiel #2
0
    def test_date_logic(self) -> None:
        UserPresence.objects.all().delete()

        user_profile = self.example_user("hamlet")
        email = user_profile.email
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assert_length(presence_dct, 0)

        self.login_user(user_profile)
        result = self.client_post("/json/users/me/presence",
                                  {"status": "active"})
        self.assert_json_success(result)

        slim_presence = False
        presence_dct = get_status_dict_by_realm(user_profile.realm_id,
                                                slim_presence)
        self.assert_length(presence_dct, 1)
        self.assertEqual(presence_dct[email]["website"]["status"], "active")

        slim_presence = True
        presence_dct = get_status_dict_by_realm(user_profile.realm_id,
                                                slim_presence)
        self.assert_length(presence_dct, 1)
        info = presence_dct[str(user_profile.id)]
        self.assertEqual(set(info.keys()), {"active_timestamp"})

        def back_date(num_weeks: int) -> None:
            user_presence = UserPresence.objects.filter(
                user_profile=user_profile)[0]
            user_presence.timestamp = timezone_now() - datetime.timedelta(
                weeks=num_weeks)
            user_presence.save()

        # Simulate the presence being a week old first.  Nothing should change.
        back_date(num_weeks=1)
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assert_length(presence_dct, 1)

        # If the UserPresence row is three weeks old, we ignore it.
        back_date(num_weeks=3)
        presence_dct = get_status_dict_by_realm(user_profile.realm_id)
        self.assert_length(presence_dct, 0)
Beispiel #3
0
 def pushable() -> bool:
     presence_dct = get_status_dict_by_realm(user_profile.realm_id)
     self.assert_length(presence_dct, 1)
     return presence_dct[email]["website"]["pushable"]
Beispiel #4
0
 def pushable() -> bool:
     presence_dct = get_status_dict_by_realm(user_profile.realm_id)
     self.assertEqual(len(presence_dct), 1)
     return presence_dct[email]['website']['pushable']