def testNotAsciiParameters(self): defaut_domain = settings.default_domain token = token_storage.get_token(defaut_domain) command = BxQuery('crm.lead.list', { 'FILTER[%NAME]': 'неаскистрока', 'auth': token }, defaut_domain) result = command.call() self.assertEqual(result.total, 0)
def testAsBatch(self): params = {'ID': self.TEST_LEAD_ID, 'auth': self.token} cmd_name = 'LEAD_GET_COMMAND' expected = { 'cmd[{}]'.format(cmd_name): '{query}?ID={ID}&auth={auth}'.format(query=self.TEST_LEAD_QUERY, **params) } query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain, cmd_name=cmd_name) self.assertEqual(expected, query.as_batch())
def testInvalidToken(self): params = { 'ID': self.TEST_LEAD_ID, 'auth': self.token + 'INVALID_TOKEN' } query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain) self.assertRaises(InvalidTokenException, query.call)
def get_by_id(self, entity_id): # type: (str or int) -> BxEntity """ Searches for entity by provided id :param entity_id: entity id :return: entity """ q = BxQuery(self._build_query_name(self.GET), {'ID': entity_id, 'auth': self.token}, self.domain) result = self._call(q) return self.adapter.from_bitrix(result)
def testConstructorFromBxQueryCommand(self): queries = [] expected_queries = {} for q, p, n in self.test_queries: expected_queries.update( {'cmd[{}]'.format(n): '{}?ID={}'.format(q, p['ID'])}) queries.append(BxQuery(q, p, cmd_name=n, domain=self.domain)) batch = BxBatch(queries, self.token, self.domain) created_commands = batch.commands for e in expected_queries: self.assertEqual(created_commands[e], expected_queries[e])
def testConstructorFail(self): expected_queries = {} queries = [] for q, p, n in self.test_queries: expected_queries.update( {'cmd[{}]'.format(n): '{}?ID={}'.format(q, p['ID'])}) queries.append(BxQuery(q, p, cmd_name=n, domain=self.domain)) invalid_query = {'crm.lead.get': {'ID': 1234}} queries.append(invalid_query) self.assertRaises(ValueError, BxBatch, queries, self.token, self.domain)
def create(self, entity): # type: (BxEntity) -> BxQueryResponse """ Creates entity :param entity: entity to create :return: Bitrix response """ params = self.adapter.to_bitrix(entity, True) params.update({'auth': self.token}) q = BxQuery(self._build_query_name(self.CREATE), params, self.domain) result = self._call(q) return result
def testSafeCall(self): params = { 'ID': self.TEST_LEAD_ID, 'auth': self.token + 'INVALID_TOKEN' } query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain) result = query.safe_call() self.assertEqual(result.result, {}) self.assertEqual(result.result_next, 0) self.assertEqual(result.total, 0) self.assertTrue(result.error['error']) params = {'ID': self.TEST_LEAD_ID, 'auth': self.token} query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain) result = query.safe_call() self.assertEqual(result.result['ID'], self.TEST_LEAD_ID) self.assertEqual(result.result_next, 0) self.assertEqual(result.total, 1)
def testInvalidQuery(self): params = {'ID': self.TEST_LEAD_ID, 'auth': self.token} query = BxQuery(self.TEST_LEAD_QUERY + 'MESSED_UP_QUERY', params, self.domain) self.assertRaises(InvalidQueryException, query.call)
def testSuccessfulQuery(self): params = {'ID': self.TEST_LEAD_ID, 'auth': self.token} query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain) self.assertEqual(query.call().result['ID'], self.TEST_LEAD_ID)
def testTokenNotProvided(self): params = {'ID': self.TEST_LEAD_ID} query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain) self.assertRaises(TokenNotFoundException, query.call)
def delete(self, entity): q = BxQuery(self._build_query_name(self.DELETE), entity.id.to_bitrix, self.domain) result = self._call(q) return result