Ejemplo n.º 1
0
    def test_query_parse_decimals(self):
        """Test parsing of floating point numbers as decimals"""
        responses.add(
            responses.GET,
            re.compile(r'^https://.*/query/\?q=SELECT\+ID%2C\+Price\+'
                       r'FROM\+Account$'),
            body='{"records": [{"ID": "1", "Price": 13.40},'
                              '{"ID": "2", "Price": 1.12345678901234567},'
                              '{"ID": "3", "Price": 123456789012345678},'
                              '{"ID": "4", "Price": 0},'
                              '{"ID": "5", "Price": -1.1234567890123456},'
                              '{"ID": "6", "Price": -12345678901234567}],'
                 '"done": false, "nextRecordsUrl": '
                 '"https://example.com/query/next-records-id", "totalSize": 6}',
            status=http.OK)
        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance_url=tests.SERVER_URL,
                            session=session,
                            parse_fixed_place=True)

        result = client.query('SELECT ID, Price FROM Account')
        self.assertEqual(
            result,
            OrderedDict([
                ('records', [
                    OrderedDict([
                        ('ID', '1'),
                        ('Price', decimal.Decimal('13.40')),
                    ]),
                    OrderedDict([
                        ('ID', '2'),
                        ('Price', decimal.Decimal('1.12345678901234567')),
                    ]),
                    OrderedDict([
                        ('ID', '3'),
                        ('Price', decimal.Decimal('123456789012345678')),
                    ]),
                    OrderedDict([
                        ('ID', '4'),
                        ('Price', decimal.Decimal('0')),
                    ]),
                    OrderedDict([
                        ('ID', '5'),
                        ('Price', decimal.Decimal('-1.1234567890123456')),
                    ]),
                    OrderedDict([
                        ('ID', '6'),
                        ('Price', decimal.Decimal('-12345678901234567')),
                    ]),
                ]),
                ('done', False),
                ("nextRecordsUrl", "https://example.com/query/next-records-id"),
                ('totalSize', 6),
            ]))
Ejemplo n.º 2
0
    def test_query_include_deleted(self):
        """Test querying for all records generates the expected request"""
        responses.add(
            responses.GET,
            re.compile(r'^https://.*/queryAll/\?q=SELECT\+ID\+FROM\+Account$'),
            body='{}',
            status=http.OK)
        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance_url=tests.SERVER_URL,
                            session=session)

        result = client.query('SELECT ID FROM Account', include_deleted=True)
        self.assertEqual(result, {})
Ejemplo n.º 3
0
    def test_query(self):
        """Test querying generates the expected request"""
        responses.add(
            responses.GET,
            re.compile(r"^https://.*/query/\?q=SELECT\+ID\+FROM\+Account$"),
            body="{}",
            status=http.OK)
        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance_url=tests.SERVER_URL,
                            session=session)

        result = client.query("SELECT ID FROM Account")
        self.assertEqual(result, {})
    def test_query_include_deleted(self):
        """Test querying for all records generates the expected request"""
        responses.add(
            responses.GET,
            re.compile(r'^https://.*/queryAll/\?q=SELECT\+ID\+FROM\+Account$'),
            body='{}',
            status=http.OK)
        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance_url=tests.SERVER_URL,
                            session=session)

        result = client.query('SELECT ID FROM Account', include_deleted=True)
        self.assertEqual(result, {})
Ejemplo n.º 5
0
    def test_query_parse_float_to_decimal(self):
        """Test querying generates float as Decimal values"""
        responses.add(
            responses.GET,
            re.compile(
                r'^https://.*/query/\?q=SELECT\+currency\+FROM\+Account$'
            ),
            body='{"currency": 1.0}',
            status=http.OK,
        )
        session = requests.Session()
        client = Salesforce(
            session_id=tests.SESSION_ID,
            instance_url=tests.SERVER_URL,
            session=session,
            parse_float=decimal.Decimal,
        )

        result = client.query('SELECT currency FROM Account')
        self.assertIsInstance(result["currency"], decimal.Decimal)
        self.assertNotIsInstance(result["currency"], float)
        self.assertEqual(result, {"currency": decimal.Decimal(1.0)})
        self.assertEqual(result, {"currency": 1.0})
        self.assertNotEqual(result, {"currency": "1.0"})