def get_users(self, **kwargs): all_args = ["email", "status", "status_ok", "limit", "offset"] params = sanitize_params(kwargs, all_args) return [ User(self, obj) for obj in self._request_uri("users", params=params) ]
def post_user(self, **kwargs): req_args = ["email", "server", "username", "use_ssl", "port", "type"] if check_for_account_credentials(kwargs): all_args = [ "password", "provider_refresh_token", "provider_consumer_key", "migrate_account_id", "first_name", "last_name" ] + req_args params = sanitize_params(kwargs, all_args, req_args) return User( self, self._request_uri("users", method="POST", params=params))
def setUp(self): self.user = User(Mock(spec=[]), {"id": "fake_id"})
class TestUser(unittest.TestCase): def setUp(self): self.user = User(Mock(spec=[]), {"id": "fake_id"}) @patch("contextio.lib.resources.base_resource.BaseResource.post") def test_post_updates_first_and_last_name(self, mock_post): mock_post.return_value = True params = { "first_name": "Leeroy", "last_name": "Jenkins" } response = self.user.post(**params) self.assertEqual(self.user.first_name, "Leeroy") self.assertEqual(self.user.last_name, "Jenkins") mock_post.assert_called_with(all_args=["first_name", "last_name"], params=params) self.assertTrue(response) @patch("contextio.lib.resources.base_resource.BaseResource._request_uri") def test_get_connect_tokens_returns_list_of_ConnectTokens(self, mock_request): mock_request.return_value = [{"token": "fake_token", "user": {"id": "foobar"}}] user_connect_tokens = self.user.get_connect_tokens() self.assertEqual(1, len(user_connect_tokens)) self.assertIsInstance(user_connect_tokens[0], ConnectToken) self.assertIsInstance(user_connect_tokens[0].user, User) @patch("contextio.lib.resources.base_resource.BaseResource._request_uri") def test_get_email_accounts_returns_list_of_EmailAccounts(self, mock_request): mock_request.return_value = [{"label": "fake_label"}] user_email_accounts = self.user.get_email_accounts() self.assertEqual(1, len(user_email_accounts)) self.assertIsInstance(user_email_accounts[0], EmailAccount) def test_post_webhook_requires_args(self): with self.assertRaises(ArgumentError): self.user.post_webhook() @patch("contextio.lib.resources.base_resource.BaseResource._request_uri") def test_get_webhooks_returns_list_of_WebHooks(self, mock_request): mock_request.return_value = [{"webhook_id": "fake_id"}] user_webhooks = self.user.get_webhooks() self.assertEqual(1, len(user_webhooks)) self.assertIsInstance(user_webhooks[0], WebHook) def test_post_email_account_requires_args(self): with self.assertRaises(ArgumentError): self.user.post_webhook() @patch("contextio.lib.resources.base_resource.BaseResource.post") def test_post_webhook_returns_WebHook_object(self, mock_post): mock_post.return_value = {"success": True, "webhook_id": "foobar"} webhook = self.user.post_webhook() self.assertIsInstance(webhook, WebHook) @patch("contextio.lib.resources.base_resource.BaseResource.post") def test_post_webhook_returns_False_if_creation_failed(self, mock_post): mock_post.return_value = {"success": False} response = self.user.post_webhook() self.assertFalse(response)
def _create_user(self, user): if user is not None: from contextio.lib.resources.user import User return User(self.parent, user) else: return None