def test_can_render_project_with_theme(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile theme = Theme.objects.create( definition={'css': 'http://example.com/style.css'}) project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, theme=theme, public=True) kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False) response.render() assert_in( '<link rel="stylesheet" href="http://example.com/style.css">', response.content.decode('utf-8'))
def test_anon_gets_404_for_non_public_project(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() with assert_raises(Http404): response = project_page_view(request, **kwargs)
def test_anon_gets_404_for_non_public_project(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() with assert_raises(Http404): response = project_page_view(request, **kwargs)
def test_owner_gets_404_on_expired_project(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False, expires_at=datetime(1970, 1, 1, tzinfo=utc)) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth with assert_raises(Http404): response = project_page_view(request, **kwargs)
def test_anon_gets_public_page_with_future_expires(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=True, expires_at=(now() + timedelta(days=1))) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False)
def test_owner_gets_uneditable_details_on_non_public_project(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False)
def test_non_owner_gets_404_on_non_public_project(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } auth2 = UserAuth.objects.create_user(username='******', password='******') url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth2 with assert_raises(Http404): response = project_page_view(request, **kwargs)
def test_non_owner_gets_404_on_non_public_project(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} auth2 = UserAuth.objects.create_user(username='******', password='******') url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth2 with assert_raises(Http404): response = project_page_view(request, **kwargs)
def test_owner_gets_uneditable_details_on_non_public_project(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False) kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False)
def test_anon_gets_public_page_with_no_expires(self): owner = Profile.objects.create(slug='mjumbewu') project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=True) project.expires_at = None project.save() kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False)
def test_can_render_project_without_theme(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=True) kwargs = { 'owner_slug': owner.slug, 'project_slug': project.slug } url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = AnonymousUser() response = project_page_view(request, **kwargs) assert_equal(response.status_code, 200) assert_equal(response.context_data.get('is_editable'), False) response.render() assert_not_in('<link rel="stylesheet" href="http://example.com/style.css">', response.content.decode('utf-8'))
def test_owner_gets_404_on_expired_project(self): auth = UserAuth.objects.create_user(username='******', password='******') owner = auth.profile project = Project.objects.create(slug='test-slug', title='test title', location='test location', owner=owner, public=False, expires_at=datetime(1970, 1, 1, tzinfo=utc)) kwargs = {'owner_slug': owner.slug, 'project_slug': project.slug} url = reverse('app-project-page', kwargs=kwargs) request = self.factory.get(url) request.user = auth with assert_raises(Http404): response = project_page_view(request, **kwargs)