def test_get_external_id_returns_username(self): u = create_user(username="******", password="******") request = test.RequestFactory().get("/") request.user = u view = views.ZendeskAuthorize(request=request) self.assertEqual(u.get_username(), view.get_external_id())
def test_get_email_returns_user_email(self): u = create_user(username="******", email="*****@*****.**") request = test.RequestFactory().get("/") request.user = u view = views.ZendeskAuthorize(request=request) self.assertEqual(u.email, view.get_email())
def test_get_user_name_returns_username_when_no_first_or_last_name(self): u = User(username="******") request = test.RequestFactory().get("/") request.user = u view = views.ZendeskAuthorize(request=request) self.assertEqual(u.get_username(), view.get_user_name())
def test_get_user_name_returns_full_name_when_present(self): u = User(first_name=" Joe", last_name="Tester ") request = test.RequestFactory().get("/") request.user = u view = views.ZendeskAuthorize(request=request) self.assertEqual("Joe Tester", view.get_user_name())
def test_get_timestamp_returns_empty_string_when_not_in_get_parameter( self): request = test.RequestFactory().get("/", {}) view = views.ZendeskAuthorize(request=request) timestamp = view.get_timestamp() self.assertEqual(u'', timestamp)
def test_create_query_string_returns_url_encoded_string_for_parameters_present(self, get_params): get_params.return_value = [ ('name', 'Joe Tester'), ('email', '*****@*****.**'), ('organization', ''), ] view = views.ZendeskAuthorize() self.assertEqual('name=Joe+Tester&email=joe%40example.com', view.create_query_string())
def test_create_query_string_never_includes_token(self, get_params): get_params.return_value = [ ('name', 'Joe Tester'), ('email', '*****@*****.**'), ('organization', ''), ('token', TEST_ZENDESK_TOKEN), ] view = views.ZendeskAuthorize() self.assertEqual('name=Joe+Tester&email=joe%40example.com', view.create_query_string())
def test_generate_hash_creates_pipe_delimited_hash_from_values(self): # functional test... testing default behavior. u = User(first_name=" Joe", last_name="Tester ", email="*****@*****.**", username="******") request = test.RequestFactory().get("/", {'timestamp': 500}) request.user = u hash_string = "{user_name}|{email}|{external_id}||||{token}|{timestamp}".format( user_name="Joe Tester", email=u.email, external_id=u.get_username(), token=settings.ZENDESK_TOKEN, timestamp=u'500') expected_hash = md5(hash_string).hexdigest() view = views.ZendeskAuthorize(request=request) self.assertEqual(expected_hash, view.generate_hash())
def test_generate_hash_creates_pipe_delimited_hash_from_zendesk_params(self, get_params): # unit test... testing semantics. u = User(first_name="Joe", last_name="Tester", email="*****@*****.**", username="******") get_params.return_value = [ ('name', '{} {}'.format(u.first_name, u.last_name)), ('email', u.email), ('external_id', u.get_username()), ] hash_string = "{user_name}|{email}|{external_id}".format( user_name="Joe Tester", email=u.email, external_id=u.get_username()) expected_hash = md5(hash_string).hexdigest() view = views.ZendeskAuthorize() self.assertEqual(expected_hash, view.generate_hash())
def test_get_zendesk_parameters_returns_list_of_two_item_pairs(self, get_timestamp, get_token, get_photo, get_tags, get_organization, get_id, get_email, get_user_name): # Unit test assuring the methods get called properly... order is very important. view = views.ZendeskAuthorize() self.assertEqual([ ('name', get_user_name.return_value), ('email', get_email.return_value), ('external_id', get_id.return_value), ('organization', get_organization.return_value), ('tags', get_tags.return_value), ('remote_photo_url', get_photo.return_value), ('token', get_token.return_value), ('timestamp', get_timestamp.return_value), ], view.get_zendesk_parameters())
def test_get_timestamp_returns_timestamp_from_get_parameter(self): request = test.RequestFactory().get("/", {"timestamp": 500}) view = views.ZendeskAuthorize(request=request) timestamp = view.get_timestamp() self.assertEqual(u'500', timestamp)
def test_get_token_returns_zendesk_token_from_settings(self): view = views.ZendeskAuthorize() with self.settings(ZENDESK_TOKEN="my-token-from-settings"): token = view.get_token() self.assertEqual("my-token-from-settings", token)
def test_get_remote_photo_returns_empty_string_by_default(self): view = views.ZendeskAuthorize() self.assertEqual('', view.get_remote_photo_url())
def test_get_tags_returns_empty_string_by_default(self): view = views.ZendeskAuthorize() self.assertEqual('', view.get_tags())