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)
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"'})
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)'})
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'})
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)'})
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"'})
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")
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'} )
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"'} )
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)