コード例 #1
0
    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"])
コード例 #2
0
    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)
コード例 #3
0
    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"])
コード例 #4
0
    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"])
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
    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))
コード例 #9
0
    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]})
コード例 #10
0
    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())
コード例 #11
0
    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())
コード例 #12
0
    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"])
コード例 #13
0
    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********")
コード例 #14
0
 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")
コード例 #15
0
    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)