Ejemplo n.º 1
0
 def test_entity_class_name(self):
     cls = HelpScoutObject.cls('users', 'users')
     self.assertEqual(cls.__name__, 'User')
     cls = HelpScoutObject.cls('mailboxes', 'mailboxes')
     self.assertEqual(cls.__name__, 'Mailbox')
     cls = HelpScoutObject.cls('rain', 'rain')
     self.assertEqual(cls.__name__, 'Rain')
Ejemplo n.º 2
0
 def test_from_results_single(self):
     data = {'id': 9}
     data_generator = (data for _ in range(1))
     cls = HelpScoutObject.cls('users', 'users')
     users = cls.from_results(data_generator)
     self.assertTrue(isinstance(users, list))
     self.assertEqual(len(users), 1)
Ejemplo n.º 3
0
    def get_objects(self,
                    endpoint,
                    resource_id=None,
                    params=None,
                    specific_resource=False):
        """Returns the objects from the endpoint filtering by the parameters.

        Parameters
        ----------
        endpoint: str
            One of the endpoints in the API. E.g.: conversations, mailboxes.
        resource_id: int or str or None
            The id of the resource in the endpoint to query.
            E.g.: in "GET /v2/conversations/123 HTTP/1.1" the id would be 123.
            If None is provided, nothing will be done
        params: dict or str or None
            Dictionary with the parameters to send to the url.
            Or the parameters already un url format.
        specific_resource: bool
            Specifies if the endpoint is for an specific resource_id even if
            the id is contained in the endpoint uri and resource_id None is
            provided.

        Returns
        -------
        [HelpScoutObject]
            A list of objects returned by the api.
        """
        cls = HelpScoutObject.cls(endpoint, endpoint)
        results = cls.from_results(
            self.hit_(endpoint, 'get', resource_id, params=params))
        if resource_id is not None or specific_resource:
            return results[0]
        return results
Ejemplo n.º 4
0
 def test_init(self):
     cls = HelpScoutObject.cls('users', 'users')
     user = cls({'id': 12, 'name': 'Mike'})
     self.assertTrue(isinstance(user, cls))
     self.assertTrue(isinstance(user, HelpScoutObject))
     self.assertEqual(user.id, 12)
     self.assertEqual(user.name, 'Mike')
     with self.assertRaises(AttributeError):
         user.email
Ejemplo n.º 5
0
 def test_from_results(self):
     data = {
         'users': [{'id': 3, 'name': 'Kate'}, {'id': 9, 'name': 'Matt'}]}
     data_generator = (data for _ in range(1))
     cls = HelpScoutObject.cls('users', 'users')
     users = cls.from_results(data_generator)
     self.assertTrue(isinstance(users, list))
     self.assertEqual(len(users), 2)
     self.assertEqual(users[0].id, 3)
     self.assertEqual(users[0].name, 'Kate')
     self.assertEqual(users[1].id, 9)
     self.assertEqual(users[1].name, 'Matt')
Ejemplo n.º 6
0
 def test_str(self):
     cls = HelpScoutObject.cls('users', 'users')
     user = cls({'id': 12, 'name': 'Mike'})
     self.assertEqual(str(user), 'User(id=12, name="Mike")')
Ejemplo n.º 7
0
 def test_cls_name_down_level_resource_id(self):
     endpoint = 'conversations/120/threads/4'
     cls = HelpScoutObject.cls(endpoint, endpoint)
     self.assertTrue(cls.__name__, 'threads')
Ejemplo n.º 8
0
 def test_cls_name_top_level_resource_id(self):
     cls = HelpScoutObject.cls('users/120', 'users/120')
     self.assertTrue(cls.__name__, 'users')
Ejemplo n.º 9
0
 def test_cls_name_general_endpoint_top_level(self):
     cls = HelpScoutObject.cls('users', 'users')
     self.assertTrue(cls.__name__, 'users')
Ejemplo n.º 10
0
 def test_class_superclass(self):
     cls = HelpScoutObject.cls('users', 'users')
     self.assertTrue(issubclass(cls, HelpScoutObject))