def get_read_key(): ''' Generate a read key for the project and print that key ''' settings = Settings() settings.load_config_file("config.yml") # get project name from argument if len(sys.argv) > 1: settings.set_project_name(sys.argv[1]) # generate a read key print keen_io_generate_read_key(settings.get_project_name())
class TestSettings(unittest.TestCase): @classmethod def setUpClass(self): self.settings = Settings() self.project_name = buildtimetrend.NAME self.project_info = { "version": buildtimetrend.VERSION, "schema_version": buildtimetrend.SCHEMA_VERSION, "project_name": self.project_name} def setUp(self): # reinit settings singleton if self.settings is not None: self.settings.__init__() def test_get_project_info(self): self.assertDictEqual(self.project_info, self.settings.get_project_info()) def test_get_set_project_name(self): self.assertEquals(self.project_name, self.settings.get_project_name()) self.settings.set_project_name("test_name") self.assertEquals("test_name", self.settings.get_project_name()) self.settings.set_project_name(None) self.assertEquals(None, self.settings.get_project_name()) self.settings.set_project_name("") self.assertEquals("", self.settings.get_project_name()) def test_get_add_setting(self): # setting is not set yet self.assertEquals(None, self.settings.get_setting("test_name")) self.settings.add_setting("test_name", "test_value") self.assertEquals("test_value", self.settings.get_setting("test_name")) self.settings.add_setting("test_name", None) self.assertEquals(None, self.settings.get_setting("test_name")) self.settings.add_setting("test_name", "") self.assertEquals("", self.settings.get_setting("test_name")) self.settings.add_setting("test_name", 6) self.assertEquals(6, self.settings.get_setting("test_name")) def test_get_setting(self): self.assertEquals(None, self.settings.get_setting("test_name")) self.assertEquals( self.project_name, self.settings.get_setting("project_name")) self.assertDictEqual( { "project_name": self.project_name, "mode_native": False, "mode_keen": True }, self.settings.settings.get_items()) def test_no_config_file(self): # function should return false when file doesn't exist self.assertFalse(self.settings.load_config_file('no_file.yml')) self.assertDictEqual( { "project_name": self.project_name, "mode_native": False, "mode_keen": True }, self.settings.settings.get_items()) self.assertFalse(self.settings.load_config_file('')) self.assertDictEqual( { "project_name": self.project_name, "mode_native": False, "mode_keen": True }, self.settings.settings.get_items()) # function should throw an error when no filename is set self.assertRaises(TypeError, self.settings.load_config_file) def test_load_config_file(self): # checking if Keen.io configuration is not set (yet) self.assertEquals(None, keen.project_id) self.assertEquals(None, keen.write_key) self.assertEquals(None, keen.read_key) # load sample config file self.assertTrue(self.settings.load_config_file(constants.TEST_SAMPLE_CONFIG_FILE)) self.assertDictEqual( {"project_name": "test_project", "mode_native": True, "mode_keen": False, "setting1": "test_value1"}, self.settings.settings.get_items()) # checking if Keen.io configuration is set self.assertEquals("1234", keen.project_id) self.assertEquals("12345678", keen.write_key) self.assertEquals("abcdefg", keen.read_key) self.assertTrue(keen_is_readable()) self.assertTrue(keen_is_writable())