Example #1
0
    def test_list_type(self):
        filter_definition = {"name": {"in": ["Badger", "Gopher"]}}
        expected_filter = {"name__in": "Badger,Gopher"}
        expected_query_string = "name__in=Badger,Gopher"

        api_filter = ApiFilter(filter_definition)
        self.assertEqual(expected_filter, api_filter.to_api())
        self.assertEqual(expected_query_string, api_filter.to_query_string())
Example #2
0
    def test_string_type(self):
        filter_definition = {"name": {"eq": "Badger"}}
        expected_filter = {"name__eq": "Badger"}
        expected_query_string = "name__eq=Badger"

        api_filter = ApiFilter(filter_definition)
        self.assertEqual(expected_filter, api_filter.to_api())
        self.assertEqual(expected_query_string, api_filter.to_query_string())
Example #3
0
def device_filter_helper_setter(self, value):
    """Create a campaign device filter from an API Filter

    :param self: Instance of the entity for which this is a custom method.
    :type self: mbed_cloud.foundation.UpdateCampaign
    :param value: Device filter for campaign
    :type value: mbed_cloud.client.api_filter.ApiFilter
    """
    if isinstance(value, dict):
        value = ApiFilter(filter_definition=value,
                          field_renames=Device._renames_to_api)
    elif isinstance(value, ApiFilter):
        value.field_renames = Device._renames_to_api
    elif value is not None:
        raise TypeError("This field may be either 'dict' or 'ApiFilter'.")
    # Store the filter as a dictionary for later retrieval if needed
    self._device_filter_helper.set(value.filter_definition)
    # Render the filter as a string for serialisation to the API
    self.device_filter = value.to_query_string()
Example #4
0
    def test_add_filter(self):
        api_filter = ApiFilter()
        self.assertEqual({}, api_filter.to_api())

        api_filter.add_filter("created_at", "gte", datetime(2019, 1, 1))
        expected_filter = {"created_at__gte": "2019-01-01T00:00:00Z"}
        self.assertEqual(expected_filter, api_filter.to_api())

        api_filter.add_filter("created_at", "lte", date(2019, 12, 31))
        expected_filter = {
            "created_at__gte": "2019-01-01T00:00:00Z",
            "created_at__lte": "2019-12-31"
        }
        self.assertEqual(expected_filter, api_filter.to_api())

        api_filter.add_filter("status", "eq", True)
        expected_filter = {
            "created_at__gte": "2019-01-01T00:00:00Z",
            "created_at__lte": "2019-12-31",
            "status__eq": "true"
        }
        expected_query_string = "created_at__gte=2019-01-01T00:00:00Z&created_at__lte=2019-12-31&status__eq=true"
        self.assertEqual(expected_filter, api_filter.to_api())
        self.assertEqual(expected_query_string, api_filter.to_query_string())