예제 #1
0
 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)
예제 #2
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())
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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])
예제 #6
0
 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)
예제 #7
0
 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
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 def testTokenNotProvided(self):
     params = {'ID': self.TEST_LEAD_ID}
     query = BxQuery(self.TEST_LEAD_QUERY, params, self.domain)
     self.assertRaises(TokenNotFoundException, query.call)
예제 #12
0
 def delete(self, entity):
     q = BxQuery(self._build_query_name(self.DELETE), entity.id.to_bitrix, self.domain)
     result = self._call(q)
     return result