lib.itmens/users/tests.py

92 lines
3.7 KiB
Python
Raw Permalink Normal View History

2023-08-13 18:00:10 -04:00
from django.conf import settings
2020-05-01 22:46:15 +08:00
from django.test import TestCase
2024-07-01 18:00:55 -04:00
from mastodon.models import MastodonAccount
2023-07-20 21:59:49 -04:00
from takahe.utils import Takahe
2023-07-07 02:02:48 -04:00
from .models import *
2020-05-01 22:46:15 +08:00
2023-07-07 02:02:48 -04:00
class UserTest(TestCase):
2023-07-20 21:59:49 -04:00
databases = "__all__"
2023-07-07 02:02:48 -04:00
2023-07-20 21:59:49 -04:00
def setUp(self):
2024-07-03 00:07:07 -04:00
self.alice = User.register(username="alice").identity
2024-07-01 18:00:55 -04:00
MastodonAccount.objects.create(
handle="Alice@MySpace", user=self.alice.user, domain="MySpace", uid="42"
)
2024-07-03 00:07:07 -04:00
self.bob = User.register(username="bob").identity
2023-08-13 18:00:10 -04:00
self.domain = settings.SITE_INFO.get("site_domain")
def test_handle(self):
2024-02-25 23:04:50 -05:00
self.assertEqual(APIdentity.get_by_handle("Alice"), self.alice)
self.assertEqual(APIdentity.get_by_handle("@alice"), self.alice)
self.assertEqual(APIdentity.get_by_handle("Alice@MySpace", True), self.alice)
self.assertEqual(APIdentity.get_by_handle("alice@myspace", True), self.alice)
self.assertEqual(APIdentity.get_by_handle("@alice@" + self.domain), self.alice)
self.assertEqual(APIdentity.get_by_handle("@Alice@" + self.domain), self.alice)
2023-08-13 18:00:10 -04:00
self.assertRaises(
2024-02-25 23:04:50 -05:00
APIdentity.DoesNotExist, APIdentity.get_by_handle, "@Alice@MySpace"
2023-08-13 18:00:10 -04:00
)
self.assertRaises(
2024-02-25 23:04:50 -05:00
APIdentity.DoesNotExist, APIdentity.get_by_handle, "@alice@KKCity"
2023-08-13 18:00:10 -04:00
)
def test_fetch(self):
pass
2023-07-20 21:59:49 -04:00
def test_follow(self):
self.alice.follow(self.bob)
Takahe._force_state_cycle()
2023-07-07 02:02:48 -04:00
self.assertTrue(self.alice.is_following(self.bob))
self.assertTrue(self.bob.is_followed_by(self.alice))
self.assertEqual(self.alice.following, [self.bob.pk])
2023-08-20 18:45:28 +00:00
self.assertEqual(self.bob.followers, [self.alice.pk])
2023-07-07 02:02:48 -04:00
2023-07-20 21:59:49 -04:00
self.alice.unfollow(self.bob)
Takahe._force_state_cycle()
2023-07-07 02:02:48 -04:00
self.assertFalse(self.alice.is_following(self.bob))
self.assertFalse(self.bob.is_followed_by(self.alice))
self.assertEqual(self.alice.following, [])
2023-08-20 18:45:28 +00:00
self.assertEqual(self.bob.followers, [])
2023-07-07 16:54:15 -04:00
2023-07-20 21:59:49 -04:00
def test_mute(self):
2023-07-07 16:54:15 -04:00
self.alice.mute(self.bob)
2023-07-20 21:59:49 -04:00
Takahe._force_state_cycle()
2023-07-07 16:54:15 -04:00
self.assertTrue(self.alice.is_muting(self.bob))
self.assertEqual(self.alice.ignoring, [self.bob.pk])
2023-07-20 21:59:49 -04:00
self.assertEqual(self.alice.rejecting, [])
2023-07-07 16:54:15 -04:00
2023-07-20 21:59:49 -04:00
def test_block(self):
2023-07-07 16:54:15 -04:00
self.alice.block(self.bob)
2023-07-20 21:59:49 -04:00
Takahe._force_state_cycle()
2023-07-07 16:54:15 -04:00
self.assertTrue(self.alice.is_blocking(self.bob))
self.assertTrue(self.bob.is_blocked_by(self.alice))
2023-07-20 21:59:49 -04:00
self.assertEqual(self.alice.rejecting, [self.bob.pk])
2023-07-07 16:54:15 -04:00
self.assertEqual(self.alice.ignoring, [self.bob.pk])
self.alice.unblock(self.bob)
2023-07-20 21:59:49 -04:00
Takahe._force_state_cycle()
2023-07-07 16:54:15 -04:00
self.assertFalse(self.alice.is_blocking(self.bob))
self.assertFalse(self.bob.is_blocked_by(self.alice))
2023-07-20 21:59:49 -04:00
self.assertEqual(self.alice.rejecting, [])
2023-07-07 16:54:15 -04:00
self.assertEqual(self.alice.ignoring, [])
2023-07-20 21:59:49 -04:00
# def test_external_domain_block(self):
# self.alice.mastodon_domain_blocks.append(self.bob.mastodon_site)
# self.alice.save()
# self.assertTrue(self.alice.is_blocking(self.bob))
# self.assertTrue(self.bob.is_blocked_by(self.alice))
# self.assertEqual(self.alice.merged_rejecting_ids(), [self.bob.pk])
# self.alice.merge_relationships()
# self.assertEqual(self.alice.rejecting, [self.bob.pk])
# self.alice.save()
# self.assertEqual(User.merge_rejected_by(), 1)
# self.bob.refresh_from_db()
# self.assertEqual(self.bob.rejecting, [self.alice.pk])
# self.alice.mastodon_domain_blocks.remove(self.bob.mastodon_site)
# self.assertFalse(self.alice.is_blocking(self.bob))
# self.assertFalse(self.bob.is_blocked_by(self.alice))
# self.assertEqual(self.alice.merged_rejecting_ids(), [])