def test_create_logout_login_user(self, settings_mock): settings_mock.return_value = Settings(TestBase.US_app_id) self.setup_with_bad_tokens(settings_mock.return_value) buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_create_logout_login_user") users_response = buddy.get("/users") self.assertIsNotNone(users_response) device_token = settings_mock.return_value.access_token_string user_name = self.get_test_user_name() user1_response = self.create_test_user(user_name) self.assertIsNotNone(user1_response) user_token = settings_mock.return_value.access_token_string buddy.logout_user() device_token_2 = settings_mock.return_value.access_token_string self.assertEqual(device_token, device_token_2) self.assertNotEqual(device_token, user_token) self.assertNotEqual(device_token_2, user_token) user2_response = buddy.login_user(user_name, self.get_test_user_password()) self.assertIsNotNone(user2_response) self.assertEqual(user1_response["result"]["id"], user2_response["result"]["id"]) self.assertEqual(buddy.current_user_id, user2_response["result"]["id"])
def test_auth_error(self, settings_mock): settings_mock.return_value = Settings(TestBase.US_app_id) self.setup_with_bad_tokens(settings_mock.return_value) buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_auth_error") response = buddy.get("/pictures") self.assertIsNotNone(response) self.assertEqual(response["status"], 403)
def test_upload_pic(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_upload_pic") self.create_test_user() # TODO: to run in Python Tools for VS, change to "tests\Buddy Logo.png" response = buddy.post("/pictures", {}, file=(open("Buddy Logo.png", "rb"), "image/png")) self.assertIsNotNone(response) self.assertIsNotNone(response["result"]["signedUrl"])
def test_service_exception(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_service_exception") logger = ExceptionLogger() buddy.service_exception.on_change += logger.log response = buddy.post("/metrics/events/key", {}) self.assertIsNone(response["exception"])
def test_connection(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_connection") logger = ConnectionLogger() buddy.connection_changed.on_change += logger.log buddy.post("/metrics/events/key", {}) while logger.connection is not Connection.on: time.sleep(2)
def test_buddy_init_multiple(self): client_1 = buddy.init("a", "b") self.assertEqual(client_1.app_id, "a") self.assertEqual(client_1.app_key, "b") client_2 = buddy.init("c", "d") self.assertEqual(client_2.app_id, "c") self.assertEqual(client_2.app_key, "d") self.assertEqual(buddy.current_client.app_id, "c") self.assertEqual(buddy.current_client.app_key, "d") self.assertEqual(buddy.current_client, client_2)
def test_auth(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_auth") logger = AuthLogger() self.create_test_user() buddy.logout_user() buddy.authentication_needed.on_change += logger.log response = buddy.get("/pictures", {}) self.assertIsNotNone(response) while logger.authorized is not True: time.sleep(2)
def _register_device(self, test, app_id, app_key, service_root_starts_with): client = buddy.init(app_id, app_key, service_root_starts_with) access_token_string = client.get_access_token_string() settings = Settings(app_id) test.assertEqual(access_token_string, settings.access_token_string) test.assertTrue(settings.service_root.startswith(service_root_starts_with))
def test_last_location(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_last_location") self.create_test_user() location = (42.0, -42.0) buddy.last_location = location response = buddy.post("/checkins", {}) self.assertIsNotNone(response) result = response["result"] self.assertIsNotNone(result) response = buddy.get("/checkins/" + result["id"]) self.assertIsNotNone(response) result = response["result"] self.assertIsNotNone(result) self.assertEqual(result["location"], {u'lat': location[0], u'lng': location[1]})
def test_device_token_expired(self): settings = Settings(TestBase.US_app_id) settings.set_device_token({"accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOiIyMDE1LTExLTExVDAzOjM0OjU4LjE2Mjg2NzlaIiwibCI6ImJiYmJ2LnJwZGJ2eGJnR3JNZyIsImEiOiJiYmJiYmMueGdqYnZQZHdrbGx3IiwidSI6bnVsbCwiZCI6ImJsai5sRHBGd0tNc2dGRk0ifQ.l4ob5liSYfgI25mnysjRHpgCYr1yCzayC4XjHJOv4v0", "accessTokenExpires": self.past_javascript_access_token_expires()}) client = buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_device_token_expired") buddy.post("/metrics/events/key", {}) self.assertIsNotNone(client.get_access_token_string())
def test_bad_device_token(self): settings = Settings(TestBase.US_app_id) settings.set_device_token({"accessToken": "bad device token", "accessTokenExpires": self.future_javascript_access_token_expires()}) client = buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_bad_device_token") buddy.post("/metrics/events/key", {}) self.assertIsNotNone(client.get_access_token_string())
def test_create_user(self, settings_mock): settings_mock.return_value = Settings(TestBase.US_app_id) self.setup_with_bad_tokens(settings_mock.return_value) buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_create_user") users = buddy.get("/users") self.assertIsNotNone(users) device_token = settings_mock.return_value.access_token_string self.assertIsNotNone(device_token) user_response = self.create_test_user() self.assertIsNotNone(user_response) user_token = settings_mock.return_value.access_token_string self.assertIsNotNone(user_token) self.assertNotEqual(device_token, user_token) self.assertEqual(buddy.current_user_id, user_response["result"]["id"])
def test_hardware_info(self, handle_dictionary_request_mock): handle_dictionary_request_mock.return_value = {BuddyClient.exception_name: Exception()} # TODO: to run in Python Tools for VS, change to "tests\cpuinfo" BuddyClient._hardware_info_file_name = "cpuinfo" client = buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_hardware_info") client.get_access_token_string() cpuinfo = handle_dictionary_request_mock.call_args[0][2] self.assertEqual(cpuinfo["model"], "BCM2708-000e") self.assertEqual(cpuinfo["uniqueId"], "00000000********")
def test_buddy_init(self): client_a = buddy.init("a", "b") self.assertEqual(client_a.app_id, "a") self.assertEqual(client_a.app_key, "b")
def test_put_metrics(self): buddy.init(TestBase.US_app_id, TestBase.US_app_key, "test_put_metrics") response = buddy.post("/metrics/events/key", {}) self.assertIsNotNone(response)