def test_unable_to_find_user_in_osm_response_raises_error(self):
        # Arrange
        osm_response = get_canned_osm_user_details()

        # Act / Assert
        with self.assertRaises(AuthServiceError):
            AuthenticationService().login_user(osm_response, None, "wont-find")
    def test_valid_auth_request_gets_token(self, mock_user_get):
        # Arrange
        osm_response = get_canned_osm_user_details()

        # Act
        params = AuthenticationService.login_user(osm_response, None)

        self.assertEqual(params["username"], "Thinkwhere Test")
        self.assertTrue(params["session_token"])
    def test_if_user_get_called_with_osm_id(self, mock_user_get):
        # Arrange
        osm_response = get_canned_osm_user_details()

        # Act
        AuthenticationService.login_user(osm_response, None)

        # Assert
        mock_user_get.assert_called_with(7777777)
    def test_unknown_user_creates_user_in_db(self):
        if self.skip_tests:
            return

        # Arrange
        osm_response = get_canned_osm_user_details()

        # Act
        params = AuthenticationService().login_user(osm_response, None)

        self.assertEqual(params["username"], "Thinkwhere Test")
        self.assertTrue(params["session_token"])
    def test_if_user_create_called_if_user_not_found(self, mock_user_get,
                                                     mock_user_register,
                                                     mock_message):
        # Arrange
        osm_response = get_canned_osm_user_details()
        mock_user_get.side_effect = NotFound()

        # Act
        AuthenticationService.login_user(osm_response, None)

        # Assert
        mock_user_register.assert_called_with(7777777, "Thinkwhere Test", 16,
                                              None, None)