Esempio n. 1
0
    def test_filter(self):
        """The filter function should correctly handle various arguments"""
        credentials = Mock(base_url="")
        manager = Manager('contacts', credentials)

        uri, params, method, body, headers, singleobject = manager._filter(
                order="LastName",
                page=2,
                offset=5,
                since=datetime(2014, 8, 10, 15, 14, 46),
                Name="John")

        self.assertEqual(method, 'get')
        self.assertFalse(singleobject)

        expected_params = {
                "order": "LastName",
                "page": 2,
                "offset": 5,
                "where": 'Name=="John"'
        }
        self.assertEqual(params, expected_params)

        expected_headers = {
                "If-Modified-Since" : "Sun, 10 Aug 2014 15:14:46 GMT"
        }
        self.assertEqual(headers, expected_headers)

        # Also make sure an empty call runs ok
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {})
        self.assertIsNone(headers)

        manager = Manager('invoices', credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
                **{'Contact.ContactID': '3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f'})

        self.assertEqual(params,
            {'where': 'Contact.ContactID==Guid("3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f")'})

        # Test filtering with 'Or' predicates
        uri, params, method, body, headers, singleobject = manager._filter(
            Reference="1281465137",
            Status=['AUTHORISED', 'PAID'])

        expected_params = {
            "where":
            '(Status=="AUTHORISED" Or Status=="PAID")&&Reference=="1281465137"'
        }

        self.assertEqual(params, expected_params)
Esempio n. 2
0
    def test_filter(self):
        """The filter function should correctly handle various arguments"""
        credentials = Mock(base_url="")
        manager = Manager("contacts", credentials)

        uri, params, method, body, headers, singleobject = manager._filter(
            order="LastName",
            page=2,
            offset=5,
            since=datetime.datetime(2014, 8, 10, 15, 14, 46),
            Name="John",
        )

        self.assertEqual(method, "get")
        self.assertFalse(singleobject)

        expected_params = {
            "order": "LastName",
            "page": 2,
            "offset": 5,
            "where": 'Name=="John"',
        }
        self.assertEqual(params, expected_params)

        expected_headers = {"If-Modified-Since": "Sun, 10 Aug 2014 15:14:46 GMT"}
        self.assertEqual(headers, expected_headers)

        # Also make sure an empty call runs ok
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {})
        self.assertIsNone(headers)

        manager = Manager("invoices", credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
            **{"Contact.ContactID": "3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f"}
        )

        self.assertEqual(
            params,
            {
                "where": 'Contact.ContactID==Guid("3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f")'
            },
        )

        (uri, params, method, body, headers, singleobject) = manager._filter(
            **{"AmountPaid": 0.0}
        )

        self.assertEqual(params, {"where": 'AmountPaid=="0.0"'})
Esempio n. 3
0
    def test_magnitude_filters(self):
        """The filter function should correctlu handle date arguments and gt, lt operators"""
        credentials = Mock(base_url="")

        manager = Manager('invoices', credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
            **{'Date__gt': datetime.datetime(2007, 12, 6)})

        self.assertEqual(params, {u'where': u'Date>DateTime(2007,12,6)'})

        manager = Manager('invoices', credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
            **{'Date__lte': datetime.datetime(2007, 12, 6)})

        self.assertEqual(params, {u'where': u'Date<=DateTime(2007,12,6)'})
Esempio n. 4
0
 def test_boolean_filter(self):
     """The filter function should correctly handle various arguments"""
     credentials = Mock(base_url="")
     manager = Manager('invoices', credentials)
     uri, params, method, body, headers, singleobject = manager._filter(
         CanApplyToRevenue=True)
     self.assertEqual(params, {'where': 'CanApplyToRevenue==true'})
Esempio n. 5
0
    def test_magnitude_filters(self):
        """The filter function should correctlu handle date arguments and gt, lt operators"""
        credentials = Mock(base_url="")

        manager = Manager('invoices', credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
                **{'Date__gt': datetime(2007, 12, 6)})

        self.assertEqual(params,
           {u'where': u'Date>DateTime(2007,12,6)'})

        manager = Manager('invoices', credentials)
        uri, params, method, body, headers, singleobject = manager._filter(
                **{'Date__lte': datetime(2007, 12, 6)})

        self.assertEqual(params,
           {u'where': u'Date<=DateTime(2007,12,6)'})
Esempio n. 6
0
 def test_rawfilter(self):
     """The filter function should correctly handle various arguments"""
     credentials = Mock(base_url="")
     manager = Manager('invoices', credentials)
     uri, params, method, body, headers, singleobject = manager._filter(
         Status="VOIDED", raw='Name.ToLower()=="test contact"')
     self.assertEqual(
         params,
         {'where': 'Name.ToLower()=="test contact"&&Status=="VOIDED"'})
Esempio n. 7
0
    def test_unit4dps(self):
        """The manager should add a query param of unitdp iff enabled"""

        credentials = Mock(base_url="")

        # test 4dps is disabled by default
        manager = Manager('contacts', credentials)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {}, "test 4dps not enabled by default")

        # test 4dps is enabled by default
        manager = Manager('contacts', credentials, unit_price_4dps=True)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {"unitdp": 4}, "test 4dps can be enabled explicitly")

        # test 4dps can be disable explicitly
        manager = Manager('contacts', credentials, unit_price_4dps=False)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {}, "test 4dps can be disabled explicitly")
Esempio n. 8
0
    def test_unit4dps(self):
        """The manager should add a query param of unitdp iff enabled"""

        credentials = Mock(base_url="")

        # test 4dps is disabled by default
        manager = Manager('contacts', credentials)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {}, "test 4dps not enabled by default")

        # test 4dps is enabled by default
        manager = Manager('contacts', credentials, unit_price_4dps=True)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {"unitdp": 4}, "test 4dps can be enabled explicitly")

        # test 4dps can be disable explicitly
        manager = Manager('contacts', credentials, unit_price_4dps=False)
        uri, params, method, body, headers, singleobject = manager._filter()
        self.assertEqual(params, {}, "test 4dps can be disabled explicitly")
Esempio n. 9
0
 def test_boolean_filter(self):
     """The filter function should correctly handle various arguments"""
     credentials = Mock(base_url="")
     manager = Manager('invoices', credentials)
     uri, params, method, body, headers, singleobject = manager._filter(
         CanApplyToRevenue=True
     )
     self.assertEqual(
         params,
         {'where': 'CanApplyToRevenue==true'}
     )
Esempio n. 10
0
 def test_rawfilter(self):
     """The filter function should correctly handle various arguments"""
     credentials = Mock(base_url="")
     manager = Manager('invoices', credentials)
     uri, params, method, body, headers, singleobject = manager._filter(
         Status="VOIDED",
         raw='Name.ToLower()=="test contact"'
     )
     self.assertEqual(
         params,
         {'where': 'Name.ToLower()=="test contact"&&Status=="VOIDED"'}
     )
Esempio n. 11
0
    def test_filter_ids(self):
        """The filter function should correctly handle various arguments"""
        credentials = Mock(base_url="")
        manager = Manager("contacts", credentials)

        uri, params, method, body, headers, singleobject = manager._filter(
            IDs=["1", "2", "3", "4", "5"]
        )

        self.assertEqual(method, "get")
        self.assertFalse(singleobject)

        expected_params = {
            "IDs": "1,2,3,4,5"
        }
        self.assertEqual(params, expected_params)