def setUp(self): self.view = MiddlewareTest.SampleView() self.middleware = middleware.ProfilerMiddleware(None) self.request = client.RequestFactory().get('/sample/?prof') self.default_response = http.HttpResponse('default response') self.override_settings = {'DEBUG': True} self.profile_content = '<pre>'.encode('utf-8')
def test_get_render_the_template_with_extra_speakers_in_context(self): instance = models.Session.objects.get(pk=1) request = client.RequestFactory().get("/dashboard/proposals/2/") request.user = instance.speakers.get(username="******") result = views.EditSessionView().get(request, 2) self.assertIn('extra_speakers', result.context_data) self.assertEqual(result.context_data["extra_speakers"][0].pk, 2)
def test_interim_get_view(self): rf = client.RequestFactory() mock_request = rf.get('/') v = self.da.f_a.get_view() r = v(mock_request) self.assertEquals(r.status_code, 200) self.assertEquals(b''.join(r.streaming_content), b'CONTENT')
def test_get_view_by_name(self): rf = client.RequestFactory() mock_request = rf.get('/') v = self.da.f_a.get_view("dummy") r = v(mock_request) self.assertEquals(r.status_code, 200) self.assertEquals(r.serialize_headers(), b'Content-Type: dummy\r\nMy-Name: xxx/NAME')
def get_image_url(self): if self.twitter_profile_data and 'profile_image_url' in self.twitter_profile_data: return self.twitter_profile_data['profile_image_url'] elif self.facebook_profile_data: # TODO: Do we really need this utils/graph_api_url? return '%s?type=square' % utils.graph_api_url( '%s/picture' % self.username) elif self.foursquare_profile_data and 'photo' in self.foursquare_profile_data: return self.foursquare_profile_data['photo'] elif self.google_profile_data and 'picture' in self.google_profile_data: return self.google_profile_data['picture'] elif self.email: request = client.RequestFactory(**getattr( settings, 'DEFAULT_REQUEST', DEFAULT_REQUEST)).request() default_url = request.build_absolute_uri( staticfiles_storage.url( getattr(settings, 'DEFAULT_USER_IMAGE', DEFAULT_USER_IMAGE))) return 'https://secure.gravatar.com/avatar/%(email_hash)s?%(args)s' % { 'email_hash': hashlib.md5(self.email.lower()).hexdigest(), 'args': urllib.urlencode({ 'default': default_url, 'size': 50, }), } else: return staticfiles_storage.url( getattr(settings, 'DEFAULT_USER_IMAGE', DEFAULT_USER_IMAGE))
def test_get_speakers_return_speakers_from_extra_speakers_parameter_even_if_it_is_only_one(self): user1, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user2, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user3, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") v = views.SubscribeView() v.request = client.RequestFactory().post("/", {"extra_speakers": "*****@*****.**"}) speakers = v.get_extra_speakers() self.assertEqual([user2], list(speakers))
def test_download_profile(self): request = client.RequestFactory().get('/sample/?prof&download') with test.override_settings(**self.override_settings): self.middleware.process_view( request, self.view.get, (request,), {}) response = self.middleware.process_response( request, self.default_response) self.assertEqual(response['Content-Type'], 'application/octet-stream')
def test_parse_form_file_configuration_query(self): rf = client.RequestFactory() request = rf.get('expert_import:Parse') request.user = User.objects.get(username="******") form = FileParseForm(request=request) files_available = form.fields['config'].queryset num_of_configurations_available = len(list(files_available)) self.assertEquals(num_of_configurations_available, 1)
def test_get_render_the_form_with_data_populated(self): instance = models.Session.objects.get(pk=1) request = client.RequestFactory().get("/dashboard/proposals/1/") request.user = instance.speakers.get(username="******") resp = views.EditSessionView().get(request, 1) form = resp.context_data["form"] self.assertIsInstance(form, views.EditSessionView.form_class) self.assertEqual(instance, form.instance)
def setUp(self): self.data = { "name": "", "email": "*****@*****.**", } factory = client.RequestFactory() self.request = factory.post("/subscribers", self.data) self.view = views.SubscribeView()
def test_get_deletes_the_proposal(self): request = client.RequestFactory().get("/dashboard/proposals/delete/1/") request.user = models.Session.objects.get(pk=1).speakers.get( username="******") resp = views.DeleteSessionView().get(request, 1) self.assertIsInstance(resp, http.HttpResponseRedirect) self.assertEqual("/dashboard/proposals/", resp["Location"]) with self.assertRaises(models.Session.DoesNotExist): models.Session.objects.get(pk=1)
def setUp(self): self.view = MiddlewareTest.SampleView() self.middleware = middleware.ProfilerMiddleware() self.request = client.RequestFactory().get('/sample/?prof') self.default_response = http.HttpResponse('default response') self.override_settings = { 'DEBUG': True, 'DJANGO_CPROFILE_MIDDLEWARE_REQUIRE_STAFF': False} self.profile_content = '<pre>'.encode('utf-8')
def test_get_speakers_return_speakers_from_extra_speakers_parameter(self): user1, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user2, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user3, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") v = views.SubscribeView() v.request = client.RequestFactory().post("/", {}) v.request.POST = http.QueryDict("extra_speakers=foo&extra_speakers=foo2&[email protected]") speakers = v.get_extra_speakers() self.assertEqual([user1, user2, user3], list(speakers))
def test_get_render_the_template_with_the_session_in_context(self): instance = models.Session.objects.get(pk=1) request = client.RequestFactory().get("/dashboard/proposals/1/") request.user = instance.speakers.get(username="******") resp = views.EditSessionView().get(request, 1) self.assertIsInstance(resp, response.TemplateResponse) self.assertEqual(views.EditSessionView.template_name, resp.template_name) self.assertIsInstance(resp.context_data["session"], models.Session) self.assertEqual(1, resp.context_data["session"].pk)
def setUpClass(cls): cls.data = { "name": u"Francisco Souza", "email": u"*****@*****.**", } factory = client.RequestFactory() request = factory.post("/subscribe", cls.data) cls.view = views.SubscribeView() cls.response = cls.view.post(request)
def setUpTestData(cls): cls.user = User.objects.create_user('user1', '*****@*****.**', 'password12345') # Create question cls.question = Question.objects.create(user=cls.user, title='Title 1', text='text 1') # Create answer cls.answer = Answer.objects.create(question=cls.question, user=cls.user, text='text 1') # Create request cls.request = client.RequestFactory().get(reverse('question_list'))
def test_should_keep_extra_speakers_in_the_context_if_the_form_validation_fails(self): user1, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user2, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") data = { "title": "some title", "language": "pt", "extra_speakers": "*****@*****.**", } request = client.RequestFactory().post("/", data) request.user = user1 response = views.SubscribeView.as_view()(request) self.assertIsInstance(response, TemplateResponse) self.assertEqual(["*****@*****.**"], response.context_data["extra_speakers"])
def testForNotLoggedInUser(self): """Tests context for a not logged in user.""" profile_utils.logout() request = client.RequestFactory().get('http://some-unused.url.com/') data = request_data.RequestData(request, None, None) context = base_templates.LoggedInAs(data).context() # check that LOGIN_LINK_LABEL is used as link label self.assertEqual(context['link_label'], base_templates.LOGIN_LINK_LABEL) # check that logged_in_as is set to the default text for not logged users self.assertEqual(context['logged_in_as'], base_templates.NOT_LOGGED_IN)
def testForLoggedInUser(self): """Tests context for a logged in user.""" user = profile_utils.seedNDBUser() profile_utils.loginNDB(user) request = client.RequestFactory().get('http://some-unused.url.com/') data = request_data.RequestData(request, None, None) context = base_templates.LoggedInAs(data).context() # check that LOGOUT_LINK_LABEL is used as link label self.assertEqual(context['link_label'], base_templates.LOGOUT_LINK_LABEL) # check that logged_in_as is set to user email self.assertEqual(context['logged_in_as'], '*****@*****.**')
def test_post_renders_template_name_with_form_and_tracks_in_context(self): instance = models.Session.objects.get(pk=1) data = { "type": "talk", "audience_level": "advanced", "tags": "some, tags", "track": instance.track.pk, "language": "en", } request = client.RequestFactory().post("/dashboard/proposals/1/", data) request.user = instance.speakers.get(username="******") resp = views.EditSessionView().post(request, 1) self.assertIsInstance(resp, response.TemplateResponse) self.assertEqual(views.EditSessionView.template_name, resp.template_name) self.assertEqual([instance.track], list(resp.context_data["tracks"])) form = resp.context_data["form"] self.assertIsInstance(form, views.EditSessionView.form_class) self.assertEqual(data["audience_level"], form.data["audience_level"])
def test_post_updates_the_session(self): instance = models.Session.objects.get(pk=1) data = { "title": instance.title + " updated", "description": instance.description, "type": "talk", "audience_level": "intermediate", "tags": "some, tags", "track": instance.track.pk, "language": "en", } request = client.RequestFactory().post("/dashboard/proposals/1/", data) request.user = instance.speakers.get(username="******") resp = views.EditSessionView().post(request, 1) self.assertIsInstance(resp, http.HttpResponseRedirect) self.assertEqual("/dashboard/proposals/", resp["Location"]) instance = models.Session.objects.get(pk=1) self.assertEqual(data["title"], instance.title)
def test_form_valid_saves_the_form_using_the_user_from_request(self): user, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") track, _ = models.Track.objects.get_or_create(name_en_us="Session test", description_en_us="test") data = { "title": "some title", "description": "some description", "type": "talk", "audience_level": "intermediate", "tags": "some, tags", "track": track.pk, "language": "pt", "status": "proposed", } form = forms.SessionForm(data) request = client.RequestFactory().post("/", data) request.user = user v = views.SubscribeView(request=request) v.form_valid(form) s = models.Session.objects.get(title="some title") self.assertEqual(user, s.speakers.all()[0])
def test_should_create_a_session_with_the_post_data_getting_user_from_request(self): user, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") track, _ = models.Track.objects.get_or_create(name_en_us="Session test", description_en_us="test") data = { "title": "some title", "description": "some description", "type": "talk", "tags": "some, tags", "track": track.pk, "language": "pt", "status": "proposed", "audience_level": "intermediate" } request = client.RequestFactory().post("/", data) request.user = user result = views.SubscribeView.as_view()(request) self.assertEqual(302, result.status_code) session = models.Session.objects.get(title=data["title"]) self.assertTrue(session.id) t = models.Session.objects.get(speakers=user) self.assertEqual(u"some title", t.title)
def test_should_save_the_current_user_and_extra_speakers(self): user1, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") user2, _ = auth_models.User.objects.get_or_create(username="******", email="*****@*****.**") track, _ = models.Track.objects.get_or_create(name_en_us="Session test", description_en_us="test") data = { "title": "some title", "description": "some description", "type": "talk", "tags": "some, tags", "track": track.pk, "language": "pt", "status": "proposed", "extra_speakers": "*****@*****.**", "audience_level": "beginner" } request = client.RequestFactory().post("/", data) request.user = user1 result = views.SubscribeView.as_view()(request) self.assertEqual(302, result.status_code) session = models.Session.objects.get(title=data["title"]) self.assertTrue(session.id) t = models.Session.objects.get(speakers=user1) self.assertEqual(u"some title", t.title) self.assertEqual([user1, user2], list(t.speakers.all()))