|
@@ -13,13 +13,7 @@ from misago.users.models import AnonymousUser
|
|
from misago.users.testutils import AuthenticatedUserTestCase
|
|
from misago.users.testutils import AuthenticatedUserTestCase
|
|
|
|
|
|
|
|
|
|
-LISTS_URLS = (
|
|
|
|
- '',
|
|
|
|
- 'my/',
|
|
|
|
- 'new/',
|
|
|
|
- 'unread/',
|
|
|
|
- 'subscribed/',
|
|
|
|
-)
|
|
|
|
|
|
+LISTS_URLS = ('', 'my/', 'new/', 'unread/', 'subscribed/', )
|
|
|
|
|
|
|
|
|
|
class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
@@ -30,7 +24,6 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
|
|
|
|
self.root = Category.objects.root_category()
|
|
self.root = Category.objects.root_category()
|
|
self.first_category = Category.objects.get(slug='first-category')
|
|
self.first_category = Category.objects.get(slug='first-category')
|
|
-
|
|
|
|
"""
|
|
"""
|
|
Create categories tree for test cases:
|
|
Create categories tree for test cases:
|
|
|
|
|
|
@@ -48,12 +41,16 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
name='Category A',
|
|
name='Category A',
|
|
slug='category-a',
|
|
slug='category-a',
|
|
css_class='showing-category-a',
|
|
css_class='showing-category-a',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
Category(
|
|
Category(
|
|
name='Category E',
|
|
name='Category E',
|
|
slug='category-e',
|
|
slug='category-e',
|
|
css_class='showing-category-e',
|
|
css_class='showing-category-e',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
self.root = Category.objects.root_category()
|
|
self.root = Category.objects.root_category()
|
|
|
|
|
|
@@ -63,7 +60,9 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
name='Category B',
|
|
name='Category B',
|
|
slug='category-b',
|
|
slug='category-b',
|
|
css_class='showing-category-b',
|
|
css_class='showing-category-b',
|
|
- ).insert_at(self.category_a, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.category_a, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
self.category_b = Category.objects.get(slug='category-b')
|
|
self.category_b = Category.objects.get(slug='category-b')
|
|
|
|
|
|
@@ -71,12 +70,16 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
name='Category C',
|
|
name='Category C',
|
|
slug='category-c',
|
|
slug='category-c',
|
|
css_class='showing-category-c',
|
|
css_class='showing-category-c',
|
|
- ).insert_at(self.category_b, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.category_b, position='last-child', save=True
|
|
|
|
+ )
|
|
Category(
|
|
Category(
|
|
name='Category D',
|
|
name='Category D',
|
|
slug='category-d',
|
|
slug='category-d',
|
|
css_class='showing-category-d',
|
|
css_class='showing-category-d',
|
|
- ).insert_at(self.category_b, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.category_b, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
self.category_c = Category.objects.get(slug='category-c')
|
|
self.category_c = Category.objects.get(slug='category-c')
|
|
self.category_d = Category.objects.get(slug='category-d')
|
|
self.category_d = Category.objects.get(slug='category-d')
|
|
@@ -86,7 +89,9 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
name='Category F',
|
|
name='Category F',
|
|
slug='category-f',
|
|
slug='category-f',
|
|
css_class='showing-category-f',
|
|
css_class='showing-category-f',
|
|
- ).insert_at(self.category_e, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.category_e, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
self.category_f = Category.objects.get(slug='category-f')
|
|
self.category_f = Category.objects.get(slug='category-f')
|
|
|
|
|
|
@@ -146,26 +151,17 @@ class ThreadsListTestCase(AuthenticatedUserTestCase):
|
|
class ApiTests(ThreadsListTestCase):
|
|
class ApiTests(ThreadsListTestCase):
|
|
def test_root_category(self):
|
|
def test_root_category(self):
|
|
"""its possible to access threads endpoint with category=ROOT_ID"""
|
|
"""its possible to access threads endpoint with category=ROOT_ID"""
|
|
- response = self.client.get('%s?category=%s' % (
|
|
|
|
- self.api_link,
|
|
|
|
- self.root.pk,
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get('%s?category=%s' % (self.api_link, self.root.pk, ))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
def test_explicit_first_page(self):
|
|
def test_explicit_first_page(self):
|
|
"""its possible to access threads endpoint with explicit first page"""
|
|
"""its possible to access threads endpoint with explicit first page"""
|
|
- response = self.client.get('%s?category=%s&page=1' % (
|
|
|
|
- self.api_link,
|
|
|
|
- self.root.pk,
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get('%s?category=%s&page=1' % (self.api_link, self.root.pk, ))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
def test_invalid_list_type(self):
|
|
def test_invalid_list_type(self):
|
|
"""api returns 404 for invalid list type"""
|
|
"""api returns 404 for invalid list type"""
|
|
- response = self.client.get('%s?category=%s&list=nope' % (
|
|
|
|
- self.api_link,
|
|
|
|
- self.root.pk,
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get('%s?category=%s&list=nope' % (self.api_link, self.root.pk, ))
|
|
self.assertEqual(response.status_code, 404)
|
|
self.assertEqual(response.status_code, 404)
|
|
|
|
|
|
|
|
|
|
@@ -211,11 +207,10 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?category=%s&list=%s' % (
|
|
|
|
- self.api_link,
|
|
|
|
- self.category_b.pk,
|
|
|
|
- url.strip('/') or 'all',
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?category=%s&list=%s' %
|
|
|
|
+ (self.api_link, self.category_b.pk, url.strip('/') or 'all', )
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
self.logout_user()
|
|
self.logout_user()
|
|
@@ -231,11 +226,10 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(response.status_code, 403)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?category=%s&list=%s' % (
|
|
|
|
- self.api_link,
|
|
|
|
- self.category_b.pk,
|
|
|
|
- url.strip('/') or 'all',
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?category=%s&list=%s' %
|
|
|
|
+ (self.api_link, self.category_b.pk, url.strip('/') or 'all', )
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(response.status_code, 403)
|
|
|
|
|
|
def test_list_renders_categories_picker(self):
|
|
def test_list_renders_categories_picker(self):
|
|
@@ -243,7 +237,9 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
Category(
|
|
Category(
|
|
name='Hidden Category',
|
|
name='Hidden Category',
|
|
slug='hidden-category',
|
|
slug='hidden-category',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
|
|
|
|
testutils.post_thread(
|
|
testutils.post_thread(
|
|
@@ -253,22 +249,16 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_a.css_class)
|
|
|
|
|
|
+ self.assertContains(response, 'subcategory-%s' % self.category_a.css_class)
|
|
|
|
|
|
# readable categories, but non-accessible directly
|
|
# readable categories, but non-accessible directly
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_b.css_class)
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_c.css_class)
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_d.css_class)
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_f.css_class)
|
|
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_b.css_class)
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_c.css_class)
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_d.css_class)
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_f.css_class)
|
|
|
|
|
|
# hidden category
|
|
# hidden category
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % test_category.css_class)
|
|
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % test_category.css_class)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
@@ -284,24 +274,19 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
response = self.client.get(self.category_a.get_absolute_url())
|
|
response = self.client.get(self.category_a.get_absolute_url())
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_b.css_class)
|
|
|
|
|
|
+ self.assertContains(response, 'subcategory-%s' % self.category_b.css_class)
|
|
|
|
|
|
# readable categories, but non-accessible directly
|
|
# readable categories, but non-accessible directly
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_c.css_class)
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_d.css_class)
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_f.css_class)
|
|
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_c.css_class)
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_d.css_class)
|
|
|
|
+ self.assertNotContains(response, 'subcategory-%s' % self.category_f.css_class)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
response = self.client.get('%s?category=%s' % (self.api_link, self.category_a.pk))
|
|
response = self.client.get('%s?category=%s' % (self.api_link, self.category_a.pk))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
- self.assertEqual(
|
|
|
|
- response_json['subcategories'][0], self.category_b.pk)
|
|
|
|
|
|
+ self.assertEqual(response_json['subcategories'][0], self.category_b.pk)
|
|
|
|
|
|
def test_display_pinned_threads(self):
|
|
def test_display_pinned_threads(self):
|
|
"""
|
|
"""
|
|
@@ -318,9 +303,7 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
is_pinned=True,
|
|
is_pinned=True,
|
|
)
|
|
)
|
|
|
|
|
|
- standard = testutils.post_thread(
|
|
|
|
- category=self.first_category
|
|
|
|
- )
|
|
|
|
|
|
+ standard = testutils.post_thread(category=self.first_category)
|
|
|
|
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -371,9 +354,7 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
"""threads list is paginated for users with js disabled"""
|
|
"""threads list is paginated for users with js disabled"""
|
|
threads = []
|
|
threads = []
|
|
for _ in range(settings.MISAGO_THREADS_PER_PAGE * 3):
|
|
for _ in range(settings.MISAGO_THREADS_PER_PAGE * 3):
|
|
- threads.append(testutils.post_thread(
|
|
|
|
- category=self.first_category
|
|
|
|
- ))
|
|
|
|
|
|
+ threads.append(testutils.post_thread(category=self.first_category))
|
|
|
|
|
|
# secondary page renders
|
|
# secondary page renders
|
|
response = self.client.get('/?page=2')
|
|
response = self.client.get('/?page=2')
|
|
@@ -381,7 +362,8 @@ class AllThreadsListTests(ThreadsListTestCase):
|
|
|
|
|
|
for thread in threads[:settings.MISAGO_THREADS_PER_PAGE]:
|
|
for thread in threads[:settings.MISAGO_THREADS_PER_PAGE]:
|
|
self.assertNotContains(response, thread.get_absolute_url())
|
|
self.assertNotContains(response, thread.get_absolute_url())
|
|
- for thread in threads[settings.MISAGO_THREADS_PER_PAGE:settings.MISAGO_THREADS_PER_PAGE * 2]:
|
|
|
|
|
|
+ for thread in threads[settings.MISAGO_THREADS_PER_PAGE:settings.MISAGO_THREADS_PER_PAGE * 2
|
|
|
|
+ ]:
|
|
self.assertContains(response, thread.get_absolute_url())
|
|
self.assertContains(response, thread.get_absolute_url())
|
|
for thread in threads[settings.MISAGO_THREADS_PER_PAGE * 2:]:
|
|
for thread in threads[settings.MISAGO_THREADS_PER_PAGE * 2:]:
|
|
self.assertNotContains(response, thread.get_absolute_url())
|
|
self.assertNotContains(response, thread.get_absolute_url())
|
|
@@ -412,7 +394,9 @@ class CategoryThreadsListTests(ThreadsListTestCase):
|
|
Category(
|
|
Category(
|
|
name='Hidden Category',
|
|
name='Hidden Category',
|
|
slug='hidden-category',
|
|
slug='hidden-category',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
|
|
|
|
for url in LISTS_URLS:
|
|
for url in LISTS_URLS:
|
|
@@ -427,40 +411,44 @@ class CategoryThreadsListTests(ThreadsListTestCase):
|
|
Category(
|
|
Category(
|
|
name='Hidden Category',
|
|
name='Hidden Category',
|
|
slug='hidden-category',
|
|
slug='hidden-category',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
|
|
|
|
for url in LISTS_URLS:
|
|
for url in LISTS_URLS:
|
|
- override_acl(self.user, {
|
|
|
|
- 'visible_categories': [test_category.pk],
|
|
|
|
- 'browseable_categories': [test_category.pk],
|
|
|
|
- 'categories': {
|
|
|
|
- test_category.pk: {
|
|
|
|
- 'can_see': 1,
|
|
|
|
- 'can_browse': 0,
|
|
|
|
|
|
+ override_acl(
|
|
|
|
+ self.user, {
|
|
|
|
+ 'visible_categories': [test_category.pk],
|
|
|
|
+ 'browseable_categories': [test_category.pk],
|
|
|
|
+ 'categories': {
|
|
|
|
+ test_category.pk: {
|
|
|
|
+ 'can_see': 1,
|
|
|
|
+ 'can_browse': 0,
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- });
|
|
|
|
|
|
+ )
|
|
|
|
|
|
response = self.client.get(test_category.get_absolute_url() + url)
|
|
response = self.client.get(test_category.get_absolute_url() + url)
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(response.status_code, 403)
|
|
|
|
|
|
- override_acl(self.user, {
|
|
|
|
- 'visible_categories': [test_category.pk],
|
|
|
|
- 'browseable_categories': [test_category.pk],
|
|
|
|
- 'categories': {
|
|
|
|
- test_category.pk: {
|
|
|
|
- 'can_see': 1,
|
|
|
|
- 'can_browse': 0,
|
|
|
|
|
|
+ override_acl(
|
|
|
|
+ self.user, {
|
|
|
|
+ 'visible_categories': [test_category.pk],
|
|
|
|
+ 'browseable_categories': [test_category.pk],
|
|
|
|
+ 'categories': {
|
|
|
|
+ test_category.pk: {
|
|
|
|
+ 'can_see': 1,
|
|
|
|
+ 'can_browse': 0,
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- });
|
|
|
|
|
|
+ )
|
|
|
|
|
|
- response = self.client.get('%s?category=%s&list=%s' % (
|
|
|
|
- self.api_link,
|
|
|
|
- test_category.pk,
|
|
|
|
- url.strip('/'),
|
|
|
|
- ))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?category=%s&list=%s' % (self.api_link, test_category.pk, url.strip('/'), )
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 403)
|
|
self.assertEqual(response.status_code, 403)
|
|
|
|
|
|
def test_display_pinned_threads(self):
|
|
def test_display_pinned_threads(self):
|
|
@@ -478,9 +466,7 @@ class CategoryThreadsListTests(ThreadsListTestCase):
|
|
is_pinned=True,
|
|
is_pinned=True,
|
|
)
|
|
)
|
|
|
|
|
|
- standard = testutils.post_thread(
|
|
|
|
- category=self.first_category
|
|
|
|
- )
|
|
|
|
|
|
+ standard = testutils.post_thread(category=self.first_category)
|
|
|
|
|
|
response = self.client.get(self.first_category.get_absolute_url())
|
|
response = self.client.get(self.first_category.get_absolute_url())
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -540,14 +526,10 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
|
|
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_a.css_class)
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'subcategory-%s' % self.category_e.css_class)
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'thread-category-%s' % self.category_a.css_class)
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'thread-category-%s' % self.category_c.css_class)
|
|
|
|
|
|
+ self.assertContains(response, 'subcategory-%s' % self.category_a.css_class)
|
|
|
|
+ self.assertContains(response, 'subcategory-%s' % self.category_e.css_class)
|
|
|
|
+ self.assertContains(response, 'thread-category-%s' % self.category_a.css_class)
|
|
|
|
+ self.assertContains(response, 'thread-category-%s' % self.category_c.css_class)
|
|
|
|
|
|
# api displays same data
|
|
# api displays same data
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
@@ -567,10 +549,8 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
# thread displays
|
|
# thread displays
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
- self.assertNotContains(response,
|
|
|
|
- 'thread-category-%s' % self.category_b.css_class)
|
|
|
|
- self.assertContains(response,
|
|
|
|
- 'thread-category-%s' % self.category_c.css_class)
|
|
|
|
|
|
+ self.assertNotContains(response, 'thread-category-%s' % self.category_b.css_class)
|
|
|
|
+ self.assertContains(response, 'thread-category-%s' % self.category_c.css_class)
|
|
|
|
|
|
# api displays same data
|
|
# api displays same data
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
@@ -587,12 +567,12 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
Category(
|
|
Category(
|
|
name='Hidden Category',
|
|
name='Hidden Category',
|
|
slug='hidden-category',
|
|
slug='hidden-category',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=test_category
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=test_category)
|
|
|
|
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -604,7 +584,9 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
Category(
|
|
Category(
|
|
name='Hidden Category',
|
|
name='Hidden Category',
|
|
slug='hidden-category',
|
|
slug='hidden-category',
|
|
- ).insert_at(self.root, position='last-child', save=True)
|
|
|
|
|
|
+ ).insert_at(
|
|
|
|
+ self.root, position='last-child', save=True
|
|
|
|
+ )
|
|
|
|
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
test_category = Category.objects.get(slug='hidden-category')
|
|
|
|
|
|
@@ -704,18 +686,14 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
is_hidden=True,
|
|
is_hidden=True,
|
|
)
|
|
)
|
|
|
|
|
|
- self.access_all_categories({
|
|
|
|
- 'can_hide_threads': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_hide_threads': 1})
|
|
|
|
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
# test api
|
|
# test api
|
|
- self.access_all_categories({
|
|
|
|
- 'can_hide_threads': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_hide_threads': 1})
|
|
|
|
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -732,18 +710,14 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
is_hidden=True,
|
|
is_hidden=True,
|
|
)
|
|
)
|
|
|
|
|
|
- self.access_all_categories({
|
|
|
|
- 'can_hide_threads': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_hide_threads': 1})
|
|
|
|
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
# test api
|
|
# test api
|
|
- self.access_all_categories({
|
|
|
|
- 'can_hide_threads': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_hide_threads': 1})
|
|
|
|
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -760,18 +734,14 @@ class ThreadsVisibilityTests(ThreadsListTestCase):
|
|
is_unapproved=True,
|
|
is_unapproved=True,
|
|
)
|
|
)
|
|
|
|
|
|
- self.access_all_categories({
|
|
|
|
- 'can_approve_content': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_approve_content': 1})
|
|
|
|
|
|
response = self.client.get('/')
|
|
response = self.client.get('/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
# test api
|
|
# test api
|
|
- self.access_all_categories({
|
|
|
|
- 'can_approve_content': 1
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_approve_content': 1})
|
|
|
|
|
|
response = self.client.get(self.api_link)
|
|
response = self.client.get(self.api_link)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
@@ -922,13 +892,10 @@ class NewThreadsListTests(ThreadsListTestCase):
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
- category=self.category_a,
|
|
|
|
- started_on=self.user.joined_on - timedelta(days=2)
|
|
|
|
|
|
+ category=self.category_a, started_on=self.user.joined_on - timedelta(days=2)
|
|
)
|
|
)
|
|
|
|
|
|
- testutils.reply_thread(test_thread,
|
|
|
|
- posted_on=self.user.joined_on + timedelta(days=4)
|
|
|
|
- )
|
|
|
|
|
|
+ testutils.reply_thread(test_thread, posted_on=self.user.joined_on + timedelta(days=4))
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
|
|
|
|
@@ -966,9 +933,7 @@ class NewThreadsListTests(ThreadsListTestCase):
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
category=self.category_a,
|
|
category=self.category_a,
|
|
- started_on=timezone.now() - timedelta(
|
|
|
|
- days=settings.MISAGO_READTRACKER_CUTOFF + 1
|
|
|
|
- )
|
|
|
|
|
|
+ started_on=timezone.now() - timedelta(days=settings.MISAGO_READTRACKER_CUTOFF + 1)
|
|
)
|
|
)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
@@ -1004,8 +969,7 @@ class NewThreadsListTests(ThreadsListTestCase):
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
- category=self.category_a,
|
|
|
|
- started_on=self.user.joined_on - timedelta(minutes=1)
|
|
|
|
|
|
+ category=self.category_a, started_on=self.user.joined_on - timedelta(minutes=1)
|
|
)
|
|
)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
@@ -1040,9 +1004,7 @@ class NewThreadsListTests(ThreadsListTestCase):
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
@@ -1079,9 +1041,7 @@ class NewThreadsListTests(ThreadsListTestCase):
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
self.user.categoryread_set.create(
|
|
self.user.categoryread_set.create(
|
|
category=self.category_a,
|
|
category=self.category_a,
|
|
@@ -1140,7 +1100,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1151,9 +1113,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
@@ -1182,7 +1142,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(response_json['results'][0]['id'], test_thread.pk)
|
|
self.assertEqual(response_json['results'][0]['id'], test_thread.pk)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1194,9 +1156,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
|
|
|
|
@@ -1219,7 +1179,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1230,9 +1192,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.joined_on = timezone.now() - timedelta(days=5)
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
@@ -1258,7 +1218,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1271,9 +1233,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
category=self.category_a,
|
|
category=self.category_a,
|
|
- started_on=timezone.now() - timedelta(
|
|
|
|
- days=settings.MISAGO_READTRACKER_CUTOFF + 5
|
|
|
|
- )
|
|
|
|
|
|
+ started_on=timezone.now() - timedelta(days=settings.MISAGO_READTRACKER_CUTOFF + 5)
|
|
)
|
|
)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
@@ -1302,7 +1262,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1314,8 +1276,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
- category=self.category_a,
|
|
|
|
- started_on=self.user.joined_on - timedelta(days=2)
|
|
|
|
|
|
+ category=self.category_a, started_on=self.user.joined_on - timedelta(days=2)
|
|
)
|
|
)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
@@ -1344,7 +1305,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1356,13 +1319,11 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.user.save()
|
|
self.user.save()
|
|
|
|
|
|
test_thread = testutils.post_thread(
|
|
test_thread = testutils.post_thread(
|
|
- category=self.category_a,
|
|
|
|
- started_on=self.user.joined_on - timedelta(days=2)
|
|
|
|
|
|
+ category=self.category_a, started_on=self.user.joined_on - timedelta(days=2)
|
|
)
|
|
)
|
|
|
|
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
threadstracker.make_thread_read_aware(self.user, test_thread)
|
|
- threadstracker.read_thread(
|
|
|
|
- self.user, test_thread, test_thread.last_post)
|
|
|
|
|
|
+ threadstracker.read_thread(self.user, test_thread, test_thread.last_post)
|
|
|
|
|
|
testutils.reply_thread(test_thread)
|
|
testutils.reply_thread(test_thread)
|
|
|
|
|
|
@@ -1392,7 +1353,9 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
self.assertEqual(len(response_json['results']), 0)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=unread&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=unread&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1402,9 +1365,7 @@ class UnreadThreadsListTests(ThreadsListTestCase):
|
|
class SubscribedThreadsListTests(ThreadsListTestCase):
|
|
class SubscribedThreadsListTests(ThreadsListTestCase):
|
|
def test_list_shows_subscribed_thread(self):
|
|
def test_list_shows_subscribed_thread(self):
|
|
"""list shows subscribed thread"""
|
|
"""list shows subscribed thread"""
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
self.user.subscription_set.create(
|
|
self.user.subscription_set.create(
|
|
thread=test_thread,
|
|
thread=test_thread,
|
|
category=self.category_a,
|
|
category=self.category_a,
|
|
@@ -1433,7 +1394,9 @@ class SubscribedThreadsListTests(ThreadsListTestCase):
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
self.assertContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=subscribed&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=subscribed&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1442,9 +1405,7 @@ class SubscribedThreadsListTests(ThreadsListTestCase):
|
|
|
|
|
|
def test_list_hides_unsubscribed_thread(self):
|
|
def test_list_hides_unsubscribed_thread(self):
|
|
"""list shows subscribed thread"""
|
|
"""list shows subscribed thread"""
|
|
- test_thread = testutils.post_thread(
|
|
|
|
- category=self.category_a
|
|
|
|
- )
|
|
|
|
|
|
+ test_thread = testutils.post_thread(category=self.category_a)
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
|
|
|
|
@@ -1468,7 +1429,9 @@ class SubscribedThreadsListTests(ThreadsListTestCase):
|
|
self.assertNotContains(response, test_thread.get_absolute_url())
|
|
self.assertNotContains(response, test_thread.get_absolute_url())
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
- response = self.client.get('%s?list=subscribed&category=%s' % (self.api_link, self.category_a.pk))
|
|
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ '%s?list=subscribed&category=%s' % (self.api_link, self.category_a.pk)
|
|
|
|
+ )
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
|
|
response_json = response.json()
|
|
response_json = response.json()
|
|
@@ -1480,8 +1443,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
def test_list_errors_without_permission(self):
|
|
def test_list_errors_without_permission(self):
|
|
"""list errors if user has no permission to access it"""
|
|
"""list errors if user has no permission to access it"""
|
|
TEST_URLS = (
|
|
TEST_URLS = (
|
|
- '/unapproved/',
|
|
|
|
- self.category_a.get_absolute_url() + 'unapproved/',
|
|
|
|
|
|
+ '/unapproved/', self.category_a.get_absolute_url() + 'unapproved/',
|
|
'%s?list=unapproved' % self.api_link,
|
|
'%s?list=unapproved' % self.api_link,
|
|
)
|
|
)
|
|
|
|
|
|
@@ -1492,9 +1454,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
|
|
|
|
# approval perm has no influence on visibility
|
|
# approval perm has no influence on visibility
|
|
for test_url in TEST_URLS:
|
|
for test_url in TEST_URLS:
|
|
- self.access_all_categories({
|
|
|
|
- 'can_approve_content': True
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories({'can_approve_content': True})
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
response = self.client.get(test_url)
|
|
response = self.client.get(test_url)
|
|
@@ -1502,9 +1462,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
|
|
|
|
# approval perm has no influence on visibility
|
|
# approval perm has no influence on visibility
|
|
for test_url in TEST_URLS:
|
|
for test_url in TEST_URLS:
|
|
- self.access_all_categories(base_acl={
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories(base_acl={'can_see_unapproved_content_lists': True})
|
|
|
|
|
|
self.access_all_categories()
|
|
self.access_all_categories()
|
|
response = self.client.get(test_url)
|
|
response = self.client.get(test_url)
|
|
@@ -1524,9 +1482,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
|
|
|
|
self.access_all_categories({
|
|
self.access_all_categories({
|
|
'can_approve_content': True
|
|
'can_approve_content': True
|
|
- }, {
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ }, {'can_see_unapproved_content_lists': True})
|
|
response = self.client.get('/unapproved/')
|
|
response = self.client.get('/unapproved/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
@@ -1534,9 +1490,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
|
|
|
|
self.access_all_categories({
|
|
self.access_all_categories({
|
|
'can_approve_content': True
|
|
'can_approve_content': True
|
|
- }, {
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ }, {'can_see_unapproved_content_lists': True})
|
|
response = self.client.get(self.category_a.get_absolute_url() + 'unapproved/')
|
|
response = self.client.get(self.category_a.get_absolute_url() + 'unapproved/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
@@ -1545,9 +1499,7 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
# test api
|
|
# test api
|
|
self.access_all_categories({
|
|
self.access_all_categories({
|
|
'can_approve_content': True
|
|
'can_approve_content': True
|
|
- }, {
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ }, {'can_see_unapproved_content_lists': True})
|
|
response = self.client.get('%s?list=unapproved' % self.api_link)
|
|
response = self.client.get('%s?list=unapproved' % self.api_link)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
@@ -1568,26 +1520,20 @@ class UnapprovedListTests(ThreadsListTestCase):
|
|
is_unapproved=True,
|
|
is_unapproved=True,
|
|
)
|
|
)
|
|
|
|
|
|
- self.access_all_categories(base_acl={
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories(base_acl={'can_see_unapproved_content_lists': True})
|
|
response = self.client.get('/unapproved/')
|
|
response = self.client.get('/unapproved/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertNotContains(response, hidden_thread.get_absolute_url())
|
|
self.assertNotContains(response, hidden_thread.get_absolute_url())
|
|
|
|
|
|
- self.access_all_categories(base_acl={
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories(base_acl={'can_see_unapproved_content_lists': True})
|
|
response = self.client.get(self.category_a.get_absolute_url() + 'unapproved/')
|
|
response = self.client.get(self.category_a.get_absolute_url() + 'unapproved/')
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertNotContains(response, hidden_thread.get_absolute_url())
|
|
self.assertNotContains(response, hidden_thread.get_absolute_url())
|
|
|
|
|
|
# test api
|
|
# test api
|
|
- self.access_all_categories(base_acl={
|
|
|
|
- 'can_see_unapproved_content_lists': True
|
|
|
|
- })
|
|
|
|
|
|
+ self.access_all_categories(base_acl={'can_see_unapproved_content_lists': True})
|
|
response = self.client.get('%s?list=unapproved' % self.api_link)
|
|
response = self.client.get('%s?list=unapproved' % self.api_link)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
self.assertContains(response, visible_thread.get_absolute_url())
|
|
@@ -1602,9 +1548,7 @@ class OwnerOnlyThreadsVisibilityTests(AuthenticatedUserTestCase):
|
|
|
|
|
|
def override_acl(self, user):
|
|
def override_acl(self, user):
|
|
category_acl = user.acl_cache['categories'][self.category.pk].copy()
|
|
category_acl = user.acl_cache['categories'][self.category.pk].copy()
|
|
- category_acl.update({
|
|
|
|
- 'can_see_all_threads': 0
|
|
|
|
- })
|
|
|
|
|
|
+ category_acl.update({'can_see_all_threads': 0})
|
|
user.acl_cache['categories'][self.category.pk] = category_acl
|
|
user.acl_cache['categories'][self.category.pk] = category_acl
|
|
|
|
|
|
override_acl(user, user.acl_cache)
|
|
override_acl(user, user.acl_cache)
|