def test_write_unexpected_values_to_config(self): ''' Make sure that we can't write unexpected values to the google analytics config file. ''' with self.app.app_context(): # try to write some unexpected values to the config unexpected_values = { "esme_cordelia_hoggett": "magda_szubanski", "farmer_arthur_hoggett": "james_cromwell", "hot_headed_chef": "paul_livingston", "woman_in_billowing_gown": "saskia_campbell" } # include an expected value too unexpected_values['access_token'] = u'woofer_token' google_api_functions.write_ga_config(unexpected_values, self.app.config['RUNNING_STATE_DIR']) # ask for the config contents ga_config = google_api_functions.read_ga_config(self.app.config['RUNNING_STATE_DIR']) # there are four values self.assertEqual(len(ga_config), 4) # they are named as expected self.assertTrue(u'access_token' in ga_config) self.assertTrue(u'refresh_token' in ga_config) self.assertTrue(u'profile_id' in ga_config) self.assertTrue(u'project_domain' in ga_config) # their values are as expected (including the expected value set above) self.assertEqual(ga_config['access_token'], u'woofer_token') self.assertEqual(ga_config['refresh_token'], u'refresh_meows') self.assertEqual(ga_config['profile_id'], u'12345678') self.assertEqual(ga_config['project_domain'], u'example.com')
def test_get_malformed_config_file(self): ''' Make sure that a malformed google analytics config file doesn't raise errors. ''' with self.app.app_context(): ga_config_path = join(self.app.config['RUNNING_STATE_DIR'], google_api_functions.GA_CONFIG_FILENAME) # verify that the file exists self.assertTrue(isfile(ga_config_path)) # remove the file remove(ga_config_path) # verify that the file's gone self.assertFalse(isfile(ga_config_path)) # write some garbage to the file with google_api_functions.WriteLocked(ga_config_path) as iofile: iofile.seek(0) iofile.truncate(0) iofile.write('{"access_token": "meowser_access_token", "refresh_token": "meowser_refre') # verify that the file exists self.assertTrue(isfile(ga_config_path)) # ask for the config contents ga_config = google_api_functions.read_ga_config(self.app.config['RUNNING_STATE_DIR']) # there are four values self.assertEqual(len(ga_config), 4) # they are named as expected self.assertTrue(u'access_token' in ga_config) self.assertTrue(u'refresh_token' in ga_config) self.assertTrue(u'project_domain' in ga_config) self.assertTrue(u'profile_id' in ga_config) # their values are empty strings self.assertEqual(ga_config['access_token'], u'') self.assertEqual(ga_config['refresh_token'], u'') self.assertEqual(ga_config['profile_id'], u'') self.assertEqual(ga_config['project_domain'], u'') # verify that the file exists again self.assertTrue(isfile(ga_config_path))
def test_read_missing_config_file(self): ''' Make sure that reading from a missing google analytics config file doesn't raise errors. ''' with self.app.app_context(): ga_config_path = join(self.app.config['RUNNING_STATE_DIR'], google_api_functions.GA_CONFIG_FILENAME) # verify that the file exists self.assertTrue(isfile(ga_config_path)) # remove the file remove(ga_config_path) # verify that the file's gone self.assertFalse(isfile(ga_config_path)) # ask for the config contents ga_config = google_api_functions.read_ga_config(self.app.config['RUNNING_STATE_DIR']) # there are four values self.assertEqual(len(ga_config), 4) # they are named as expected self.assertTrue(u'access_token' in ga_config) self.assertTrue(u'refresh_token' in ga_config) self.assertTrue(u'project_domain' in ga_config) self.assertTrue(u'profile_id' in ga_config) # their values are empty strings self.assertEqual(ga_config['access_token'], u'') self.assertEqual(ga_config['refresh_token'], u'') self.assertEqual(ga_config['project_domain'], u'') self.assertEqual(ga_config['profile_id'], u'')
def test_successful_request_new_google_access_token(self): with self.app.test_request_context(): with HTTMock(self.mock_successful_request_new_google_access_token): google_api_functions.request_new_google_access_token('meowser_refresh_token', self.app.config['RUNNING_STATE_DIR'], self.app.config['GA_CLIENT_ID'], self.app.config['GA_CLIENT_SECRET']) with self.app.app_context(): ga_config = google_api_functions.read_ga_config(self.app.config['RUNNING_STATE_DIR']) self.assertEqual(ga_config['access_token'], 'meowser_access_token')
def test_successful_request_new_google_access_token(self): with self.app.test_request_context(): with HTTMock(self.mock_successful_request_new_google_access_token): google_api_functions.request_new_google_access_token( "meowser_refresh_token", self.app.config["RUNNING_STATE_DIR"], self.app.config["GA_CLIENT_ID"], self.app.config["GA_CLIENT_SECRET"], ) with self.app.app_context(): ga_config = google_api_functions.read_ga_config(self.app.config["RUNNING_STATE_DIR"]) self.assertEqual(ga_config["access_token"], "meowser_access_token")
def test_write_missing_config_file(self): ''' Make sure that writing to a missing google analytics config file doesn't raise errors. ''' with self.app.app_context(): ga_config_path = join(self.app.config['RUNNING_STATE_DIR'], google_api_functions.GA_CONFIG_FILENAME) # verify that the file exists self.assertTrue(isfile(ga_config_path)) # remove the file remove(ga_config_path) # verify that the file's gone self.assertFalse(isfile(ga_config_path)) # try to write some dummy config values write_config = { "access_token": "meowser_token", "refresh_token": "refresh_meows", "profile_id": "12345678", "project_domain": "example.com" } # write the config contents google_api_functions.write_ga_config(write_config, self.app.config['RUNNING_STATE_DIR']) # verify that the file exists self.assertTrue(isfile(ga_config_path)) # ask for the config contents ga_config = google_api_functions.read_ga_config(self.app.config['RUNNING_STATE_DIR']) # there are four values self.assertEqual(len(ga_config), 4) # they are named as expected self.assertTrue(u'access_token' in ga_config) self.assertTrue(u'refresh_token' in ga_config) self.assertTrue(u'project_domain' in ga_config) self.assertTrue(u'profile_id' in ga_config) # their values are as expected (including the expected value set above) self.assertEqual(ga_config['access_token'], u'meowser_token') self.assertEqual(ga_config['refresh_token'], u'refresh_meows') self.assertEqual(ga_config['profile_id'], u'12345678') self.assertEqual(ga_config['project_domain'], u'example.com')