Intitial teams support #147

Merged
Oleg-Komarov merged 34 commits from teams-support into main 2024-05-23 19:43:54 +02:00
Showing only changes of commit 4278edd2b5 - Show all commits

View File

@ -4,10 +4,11 @@ from django.test import TestCase
from django.urls import reverse from django.urls import reverse
from common.tests.factories.extensions import create_version, create_approved_version from common.tests.factories.extensions import create_version, create_approved_version
from common.tests.factories.teams import TeamFactory
from common.tests.factories.users import UserFactory from common.tests.factories.users import UserFactory
from extensions.models import Extension, Version from extensions.models import Extension, Version
from files.models import File from files.models import File
from teams.models import Team from teams.models import Team, TeamsUsers
def _create_extension(): def _create_extension():
@ -190,7 +191,7 @@ class ExtensionDetailViewTest(_BaseTestCase):
self._check_detail_page(response, extension) self._check_detail_page(response, extension)
def test_can_view_unlisted_extension_if_maintaner(self): def test_can_view_unlisted_extension_if_maintainer(self):
extension = _create_extension() extension = _create_extension()
self.client.force_login(extension.authors.first()) self.client.force_login(extension.authors.first())
@ -198,6 +199,20 @@ class ExtensionDetailViewTest(_BaseTestCase):
self._check_detail_page(response, extension) self._check_detail_page(response, extension)
def test_can_view_unlisted_extension_if_team_member(self):
extension = _create_extension()
team = TeamFactory(slug='test-team')
user = UserFactory()
TeamsUsers(team=team, user=user).save()
extension.team = team
extension.save()
self.client.force_login(user)
response = self.client.get(extension.get_manage_url())
self._check_detail_page(response, extension)
def test_can_view_publicly_listed_extension_anonymously(self): def test_can_view_publicly_listed_extension_anonymously(self):
extension = _create_extension() extension = _create_extension()
extension.approve() extension.approve()
@ -245,7 +260,7 @@ class ExtensionManageViewTest(_BaseTestCase):
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
def test_can_view_manage_extension_page_if_maintaner(self): def test_can_view_manage_extension_page_if_maintainer(self):
extension = _create_extension() extension = _create_extension()
extension.approve() extension.approve()
@ -254,6 +269,20 @@ class ExtensionManageViewTest(_BaseTestCase):
self._check_manage_page(response, extension) self._check_manage_page(response, extension)
def test_can_view_manage_extension_page_if_team_member(self):
extension = _create_extension()
extension.approve()
team = TeamFactory(slug='test-team')
user = UserFactory()
TeamsUsers(team=team, user=user).save()
extension.team = team
extension.save()
self.client.force_login(user)
response = self.client.get(extension.get_manage_url())
self._check_manage_page(response, extension)
class ListedExtensionsTest(_BaseTestCase): class ListedExtensionsTest(_BaseTestCase):
def setUp(self): def setUp(self):
@ -354,3 +383,17 @@ class UpdateVersionViewTest(_BaseTestCase):
self.assertEqual(response2.status_code, 302) self.assertEqual(response2.status_code, 302)
version.refresh_from_db() version.refresh_from_db()
self.assertEqual(version.blender_version_max, '4.2.0') self.assertEqual(version.blender_version_max, '4.2.0')
class MyExtensionsTest(_BaseTestCase):
def test_team_members_see_extensions_in_my_extensions(self):
extension = _create_extension()
team = TeamFactory(slug='test-team')
user = UserFactory()
TeamsUsers(team=team, user=user).save()
extension.team = team
extension.save()
self.client.force_login(user)
response = self.client.get(reverse('extensions:manage-list'))
self.assertContains(response, extension.name)