Пример #1
0
 def test_application_member_membership(self):
     user = get_user('app-owner')
     member = get_user('app-member')
     application = fixtures.get_application(owner=user)
     models.ApplicationMembership.objects.create(
         application=application, user=member)
     ok_(application.has_member(member))
Пример #2
0
 def test_authenticated_request_is_successful(self):
     fixtures.get_user('hello')
     self.client.login(username='******', password='******')
     url = '/accounts/password/change/done/'
     response = self.client.get(url)
     eq_(response.status_code, 200)
     _teardown_profiles()
Пример #3
0
 def test_draft_app_is_visible_by_member(self):
     user = get_user('app-owner')
     member = get_user('app-member')
     application = fixtures.get_application(
         owner=user, status=models.Application.DRAFT)
     models.ApplicationMembership.objects.create(
         application=application, user=member)
     ok_(application.is_visible_by(member))
Пример #4
0
 def test_app_is_not_editable_by_member(self):
     user = get_user('app-owner')
     member = get_user('member')
     application = fixtures.get_application(
         owner=user, status=models.Application.DRAFT)
     models.ApplicationMembership.objects.create(
         application=application, user=member, can_edit=False)
     eq_(application.is_editable_by(member), False)
Пример #5
0
 def test_login_page_succeeds(self):
     fixtures.get_user('hello', email='*****@*****.**')
     payload  = {
         'username': '******',
         'password': '******',
     }
     response = self.client.post('/accounts/login/', payload)
     assert_redirects(response, '/accounts/profile/')
Пример #6
0
 def test_member_cannot_change_app_membership(self):
     owner = get_user('owner')
     member = get_user('member', email='*****@*****.**')
     app = fixtures.get_application(
         slug='delta', status=Application.PUBLISHED, owner=owner)
     payload = _get_appmember_payload(app.id)
     request = utils.get_request(
         'post', '/app/delta/membership/', data=payload, user=member)
     assert_raises(Http404, views.app_membership, request, 'delta')
Пример #7
0
 def test_valid_request_succeeds(self):
     fixtures.get_user('hello', email='*****@*****.**')
     payload = {
         'email': '*****@*****.**',
     }
     response = self.client.post('/accounts/password/reset/', payload)
     assert_redirects(response, reverse('password_reset_done'))
     eq_(len(mail.outbox), 1)
     expected_url = '%s/accounts/password/reset/confirm/' % settings.SITE_URL
     ok_(expected_url in mail.outbox[0].body)
Пример #8
0
 def test_users_can_be_reverse_sorted(self):
     user_a = fixtures.get_user('alpha')
     profile_a = fixtures.get_profile(user=user_a, name='alpha')
     user_b = fixtures.get_user('beta')
     profile_b = fixtures.get_profile(user=user_b, name='beta')
     request = self._get_request(data={'order': '-user__first_name'})
     response = views.profile_list(request)
     eq_(list(response.context_data['page'].object_list),
         [profile_b, profile_a])
     _teardown_profiles()
Пример #9
0
 def test_application_membership_creation(self):
     user = get_user('app-owner')
     member = get_user('member')
     application = fixtures.get_application(owner=user)
     data = {
         'user': member,
         'application': application,
     }
     instance = models.ApplicationMembership.objects.create(**data)
     eq_(instance.user, member)
     eq_(instance.application, application)
     eq_(instance.can_edit, False)
     ok_(instance.created)
Пример #10
0
 def test_export_does_not_show_innactive_users(self):
     url = '/admin/profiles/profile/export/'
     innactive_user = fixtures.get_user(
         'paul', first_name='Paul', email='*****@*****.**',
         is_active=False)
     fixtures.get_profile(user=innactive_user)
     user = fixtures.get_user(
         'john', first_name='John Donne', email='*****@*****.**')
     fixtures.get_profile(user=user)
     response = self.client.post(url, {})
     eq_(response.status_code, 200)
     ok_('attachment;' in response['Content-Disposition'])
     eq_(response.content, 'John Donne,[email protected]\r\n')
Пример #11
0
 def test_valid_membership_adds_user(self):
     owner = get_user('owner')
     member = get_user('member', email='*****@*****.**')
     app = fixtures.get_application(
         slug='delta', status=Application.PUBLISHED, owner=owner)
     payload = _get_appmember_payload(
         app.id, collaborators='*****@*****.**')
     request = self.factory.post('/app/delta/membership/', payload)
     request.user = owner
     request._messages = utils.TestMessagesBackend(request)
     response = views.app_membership(request, 'delta')
     ok_(app.members.get(id=member.id))
     eq_(response.status_code, 302)
     eq_(response['Location'], app.get_membership_url())
Пример #12
0
 def test_get_entries_for_apps_returns_entry(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(application, challenge=challenge)
     result = Entry.objects.get_entries_for_apps(challenge, [application])
     eq_(result, [AppEntry(application=application, entry=entry)])
Пример #13
0
 def test_existing_entry_is_returned(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.SUBMITTED)
     eq_(Entry.objects.get_entry_or_none(challenge, application), entry)
Пример #14
0
 def test_is_visible_for_published_challenges(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.SUBMITTED)
     eq_(entry.is_visible_by(utils.get_anon_mock()), True)
Пример #15
0
 def test_application_creation_is_successful(self):
     user = get_user('us-ignite')
     data = {
         'name': 'Gigabit app',
         'owner': user,
     }
     instance = models.Application.objects.create(**data)
     ok_(instance.id)
     eq_(instance.name, 'Gigabit app')
     ok_(instance.slug)
     eq_(instance.owner, user)
     eq_(instance.status, models.Application.DRAFT)
     eq_(instance.stage, models.Application.IDEA)
     eq_(instance.website, '')
     eq_(instance.image, '')
     eq_(instance.summary, '')
     eq_(instance.impact_statement, '')
     eq_(instance.assistance, '')
     eq_(instance.team_description, '')
     eq_(instance.acknowledgments, '')
     eq_(instance.notes, '')
     ok_(instance.created)
     ok_(instance.modified)
     eq_(instance.is_featured, False)
     eq_(list(instance.features.all()), [])
     eq_(instance.features_other, '')
     eq_(instance.domain, None)
     eq_(list(instance.members.all()), [])
     eq_(list(instance.tags.all()), [])
     eq_(instance.team_name, '')
     eq_(instance.awards, '')
Пример #16
0
 def test_instance_is_submitted(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.SUBMITTED)
     eq_(entry.is_submitted(), True)
Пример #17
0
 def test_valid_payload_succeeds(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(
         user=user, status=Challenge.PUBLISHED)
     app = get_application(owner=user, status=Application.PUBLISHED)
     question = fixtures.get_question(challenge)
     entry = fixtures.get_entry(app)
     EntryAnswer.get_or_create_answer(
         entry, question, 'Uses Gigabit features.')
     question_id = 'question_%s' % question.id
     data = {
         'status': Entry.SUBMITTED,
         question_id: 'Answer for the question!'
     }
     url = '/challenges/%s/enter/%s/' % (challenge.slug, app.slug)
     request = utils.get_request('post', url, data=data, user=user)
     request._messages = utils.TestMessagesBackend(request)
     response = views.challenge_entry(
         request, challenge.slug, app.slug)
     eq_(response.status_code, 302)
     eq_(response['location'], url)
     entry = Entry.objects.get_entry_or_none(challenge, app)
     values = entry.entryanswer_set.values('answer', 'question_id').all()
     expected = [{
         'answer': 'Answer for the question!',
         'question_id': question.id
     }]
     eq_(list(values), expected)
Пример #18
0
 def test_event_is_created_successfully(self):
     user = get_user('us-ignite')
     startdatetime = timezone.now()
     data = {
         'name': 'Gigabit community meet-up',
         'address': 'London, UK',
         'start_datetime': startdatetime,
         'user': user,
     }
     instance = models.Event.objects.create(**data)
     ok_(instance.id)
     eq_(instance.name, 'Gigabit community meet-up')
     ok_(instance.slug)
     eq_(instance.status, models.Event.PUBLISHED)
     eq_(instance.image, '')
     eq_(instance.description, '')
     eq_(instance.start_datetime, startdatetime)
     eq_(instance.end_datetime, None)
     eq_(instance.address, 'London, UK')
     eq_(instance.contact, None)
     eq_(instance.scope, models.Event.NATIONAL)
     eq_(list(instance.audiences.all()), [])
     eq_(instance.website, '')
     eq_(instance.tickets_url, '')
     eq_(list(instance.tags.all()), [])
     eq_(list(instance.hubs.all()), [])
     eq_(instance.user, user)
     eq_(instance.is_featured, False)
     eq_(instance.is_ignite, False)
     eq_(instance.notes, '')
     ok_(instance.created)
     ok_(instance.modified)
     ok_(instance.position)
     eq_(instance.audience_other, '')
Пример #19
0
 def test_create_basic_profile_is_successful(self):
     user = fixtures.get_user('john')
     data = {
         'user': user,
     }
     profile = Profile.objects.create(**data)
     ok_(profile.pk)
Пример #20
0
 def test_get_absolute_url_double_digit_month(self):
     author = get_user('us-ignite')
     naive = datetime(2012, 10, 3, 1, 30)
     publication_date = naive.replace(tzinfo=timezone.utc)
     post = fixtures.get_post(
         author=author, publication_date=publication_date, slug='gigabit-a')
     eq_(post.get_absolute_url(), '/blog/2012/10/gigabit-a/')
Пример #21
0
 def test_post_is_created_successfully(self):
     author = get_user('us-ignite')
     data = {
         'author': author,
         'slug': 'gigabit-post',
         'title': 'Gigabit post',
     }
     instance = Post.objects.create(**data)
     ok_(instance.id)
     eq_(instance.status, Post.DRAFT)
     eq_(instance.wp_id, '')
     eq_(instance.wp_type, '')
     eq_(instance.title, 'Gigabit post')
     eq_(instance.slug, 'gigabit-post')
     eq_(instance.content, '')
     eq_(instance.content_html, '')
     eq_(instance.excerpt, '')
     eq_(instance.excerpt_html, '')
     eq_(instance.author, author)
     ok_(instance.publication_date)
     ok_(instance.update_date)
     eq_(instance.is_featured, False)
     eq_(list(instance.tags.all()), [])
     ok_(instance.created)
     ok_(instance.modified)
     eq_(instance.attachment, None)
     eq_(instance.image, None)
     eq_(instance.name, 'Gigabit post')
     eq_(instance.is_custom, False)
Пример #22
0
 def test_removed_post_is_not_returned(self):
     author = get_user('us-ignite')
     publication_date = timezone.now() - relativedelta(days=1)
     post = fixtures.get_post(
         author=author, status=Post.REMOVED,
         publication_date=publication_date)
     eq_(list(Post.published.all()), [])
Пример #23
0
 def test_is_not_visible_when_is_draft(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.DRAFT)
     eq_(entry.is_visible_by(utils.get_anon_mock()), False)
Пример #24
0
 def test_instance_is_draft(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.DRAFT)
     eq_(entry.is_draft(), True)
Пример #25
0
 def test_is_visible_for_owners(self):
     user = get_user('us-ignite')
     challenge = fixtures.get_challenge(user=user)
     application = get_application(owner=user)
     entry = fixtures.get_entry(
         application, challenge=challenge, status=Entry.DRAFT)
     eq_(entry.is_visible_by(user), True)
Пример #26
0
 def test_owner_member_removal_is_successful(self):
     owner = get_user('owner')
     member = get_user('member', email='*****@*****.**')
     app = fixtures.get_application(
         slug='delta', status=Application.PUBLISHED, owner=owner)
     membership = fixtures.get_membership(app, member)
     inlines = [{'id': membership.id, 'DELETE': 'on'}]
     payload = _get_appmember_payload(
         app.id, data_list=inlines, initial_forms=1)
     request = self.factory.post('/app/delta/membership/', payload)
     request.user = owner
     request._messages = utils.TestMessagesBackend(request)
     response = views.app_membership(request, 'delta')
     eq_(list(app.members.all()), [])
     eq_(response.status_code, 302)
     eq_(response['Location'], app.get_membership_url())
Пример #27
0
 def test_inactive_users_are_not_listed(self):
     user = fixtures.get_user('us-ignite', is_active=False)
     fixtures.get_profile(user=user, name='us ignite')
     response = views.profile_list(self._get_request())
     eq_(response.status_code, 200)
     eq_(len(response.context_data['page'].object_list), 0)
     _teardown_profiles()
Пример #28
0
 def invalid_payload_fails(self):
     user = get_user("ignite-user")
     request = utils.get_request("post", "/event/add/", data={}, user=user)
     response = views.event_add(request)
     eq_(response.status_code, 200)
     ok_(response.context_data["form"].errors)
     self._tear_down()
Пример #29
0
 def test_instance_is_created_successfully(self):
     start_date = timezone.now()
     end_date = start_date + relativedelta(days=10)
     user = get_user('us-ignite')
     data = {
         'name': 'Gigabit challenge',
         'start_datetime': start_date,
         'end_datetime': end_date,
         'summary': 'Summary',
         'description': 'Description',
         'user': user,
     }
     instance = Challenge.objects.create(**data)
     ok_(instance.id)
     eq_(instance.name, 'Gigabit challenge')
     eq_(instance.slug, 'gigabit-challenge')
     eq_(instance.status, Challenge.DRAFT)
     eq_(instance.url, '')
     eq_(instance.is_external, False)
     eq_(instance.start_datetime, start_date)
     eq_(instance.end_datetime, end_date)
     eq_(instance.summary, 'Summary')
     eq_(instance.description,  'Description')
     eq_(instance.image, '')
     eq_(instance.organization, None)
     eq_(instance.user, user)
     eq_(instance.notes, '')
     ok_(instance.created)
     ok_(instance.modified)
     eq_(instance.hide_entries, False)
     eq_(instance.image, '')
     eq_(instance.event_dates, '')
     eq_(instance.acknowledgments, '')
Пример #30
0
 def test_event_invalid_payload_fails(self):
     user = get_user("ignite-user")
     event = fixtures.get_event(user=user, slug="foo", status=Event.PUBLISHED)
     request = utils.get_request("post", event.get_absolute_url(), data={}, user=user)
     response = views.event_edit(request, "foo")
     eq_(response.status_code, 200)
     eq_(response.template_name, "events/object_edit.html")
     ok_(response.context_data["form"].errors)