def test_check_status_pending(self):
        """"
        Test method for metadata deployment
        """
        # pylint: disable-msg=C0301
        mock_response = '<?xml version="1.0" ' \
                        'encoding="UTF-8"?><soapenv:Envelope ' \
                        'xmlns:soapenv="http://schemas.xmlsoap.org/soap' \
                        '/envelope/" ' \
                        'xmlns="http://soap.sforce.com/2006/04/metadata' \
                        '"><soapenv:Body><checkDeployStatusResponse><result' \
                        '><checkOnly>true</checkOnly><createdBy' \
                        '>0053D0000052Xaq</createdBy><createdByName>User ' \
                        'User</createdByName><createdDate>2020-10-28T15:38:34' \
                        '.000Z</createdDate><details><runTestResult' \
                        '><numFailures>0</numFailures><numTestsRun>0' \
                        '</numTestsRun><totalTime>0.0</totalTime' \
                        '></runTestResult></details><done>false</done><id' \
                        '>0Af3D00001NViC1SAL</id><ignoreWarnings>false' \
                        '</ignoreWarnings><lastModifiedDate>2020-10-28T15:38' \
                        ':34.000Z</lastModifiedDate><numberComponentErrors>0' \
                        '</numberComponentErrors><numberComponentsDeployed>0' \
                        '</numberComponentsDeployed><numberComponentsTotal>0' \
                        '</numberComponentsTotal><numberTestErrors>0' \
                        '</numberTestErrors><numberTestsCompleted>0' \
                        '</numberTestsCompleted><numberTestsTotal>0' \
                        '</numberTestsTotal><rollbackOnError>true' \
                        '</rollbackOnError><runTestsEnabled>false' \
                        '</runTestsEnabled><status>Pending</status><success' \
                        '>false</success></result></checkDeployStatusResponse' \
                        '></soapenv:Body></soapenv:Envelope>'

        responses.add(responses.POST,
                      re.compile(r'^https://.*/deployRequest/abdcefg'),
                      body=mock_response,
                      status=http.OK)

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.INSTANCE_URL,
                            session=session)

        result = client.checkDeployStatus("abdcefg", sandbox=False)

        self.assertEqual(result.get('state'), "Pending")
        self.assertEqual(result.get('state_detail'), None)
        self.assertEqual(
            result.get('deployment_detail'), {
                'total_count': '0',
                'failed_count': '0',
                'deployed_count': '0',
                'errors': []
            })
        self.assertEqual(
            result.get('unit_test_detail'), {
                'total_count': '0',
                'failed_count': '0',
                'completed_count': '0',
                'errors': []
            })
Пример #2
0
    def test_check_status_in_progress(self, mock_post):
        """ "
        Test method for metadata deployment
        """
        mock_response = Mock()
        mock_response.status_code = 200
        mock_response.text = '<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://soap.sforce.com/2006/04/metadata"><soapenv:Body><checkDeployStatusResponse><result><checkOnly>false</checkOnly><createdBy>0053D0000052Xaq</createdBy><createdByName>User User</createdByName><createdDate>2020-10-28T17:24:30.000Z</createdDate><details><runTestResult><numFailures>0</numFailures><numTestsRun>0</numTestsRun><totalTime>0.0</totalTime></runTestResult></details><done>false</done><id>0Af3D00001NW8mnSAD</id><ignoreWarnings>false</ignoreWarnings><lastModifiedDate>2020-10-28T17:37:08.000Z</lastModifiedDate><numberComponentErrors>0</numberComponentErrors><numberComponentsDeployed>2</numberComponentsDeployed><numberComponentsTotal>3</numberComponentsTotal><numberTestErrors>0</numberTestErrors><numberTestsCompleted>0</numberTestsCompleted><numberTestsTotal>0</numberTestsTotal><rollbackOnError>true</rollbackOnError><runTestsEnabled>false</runTestsEnabled><startDate>2020-10-28T17:24:30.000Z</startDate><status>InProgress</status><success>false</success></result></checkDeployStatusResponse></soapenv:Body></soapenv:Envelope>'
        mock_post.return_value = mock_response

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.SERVER_URL,
                            session=session)
        state, state_detail, deployment_detail, unit_test_detail = client.checkDeployStatus(
            "abdcefg")
        self.assertEqual(state, "InProgress")
        self.assertEqual(state_detail, None)
        self.assertEqual(
            deployment_detail, {
                "total_count": "3",
                "failed_count": "0",
                "deployed_count": "2",
                "errors": []
            })
        self.assertEqual(
            unit_test_detail, {
                "total_count": "0",
                "failed_count": "0",
                "completed_count": "0",
                "errors": []
            })
Пример #3
0
    def test_check_status_success(self, mock_post):
        """ "
        Test method for metadata deployment
        """
        mock_response = Mock()
        mock_response.status_code = 200
        mock_response.text = '<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://soap.sforce.com/2006/04/metadata"><soapenv:Body><checkDeployStatusResponse><result><checkOnly>false</checkOnly><completedDate>2020-10-28T13:33:29.000Z</completedDate><createdBy>0053D0000052Xaq</createdBy><createdByName>User User</createdByName><createdDate>2020-10-28T13:33:25.000Z</createdDate><details><componentSuccesses><changed>true</changed><componentType>ApexSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/Apex.settings</fileName><fullName>Apex</fullName><success>true</success></componentSuccesses><componentSuccesses><changed>true</changed><componentType>ChatterSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/Chatter.settings</fileName><fullName>Chatter</fullName><success>true</success></componentSuccesses><componentSuccesses><changed>true</changed><componentType></componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/package.xml</fileName><fullName>package.xml</fullName><success>true</success></componentSuccesses><componentSuccesses><changed>true</changed><componentType>LightningExperienceSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/LightningExperience.settings</fileName><fullName>LightningExperience</fullName><success>true</success></componentSuccesses><componentSuccesses><changed>true</changed><componentType>LanguageSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/Language.settings</fileName><fullName>Language</fullName><success>true</success></componentSuccesses><runTestResult><numFailures>0</numFailures><numTestsRun>0</numTestsRun><totalTime>0.0</totalTime></runTestResult></details><done>true</done><id>0Af3D00001NVCnwSAH</id><ignoreWarnings>false</ignoreWarnings><lastModifiedDate>2020-10-28T13:33:29.000Z</lastModifiedDate><numberComponentErrors>0</numberComponentErrors><numberComponentsDeployed>4</numberComponentsDeployed><numberComponentsTotal>4</numberComponentsTotal><numberTestErrors>0</numberTestErrors><numberTestsCompleted>0</numberTestsCompleted><numberTestsTotal>0</numberTestsTotal><rollbackOnError>true</rollbackOnError><runTestsEnabled>false</runTestsEnabled><startDate>2020-10-28T13:33:26.000Z</startDate><status>Succeeded</status><success>true</success></result></checkDeployStatusResponse></soapenv:Body></soapenv:Envelope>'
        mock_post.return_value = mock_response

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.SERVER_URL,
                            session=session)
        state, state_detail, deployment_detail, unit_test_detail = client.checkDeployStatus(
            "abdcefg")
        self.assertEqual(state, "Succeeded")
        self.assertEqual(state_detail, None)
        self.assertEqual(
            deployment_detail, {
                "total_count": "4",
                "failed_count": "0",
                "deployed_count": "4",
                "errors": []
            })
        self.assertEqual(
            unit_test_detail, {
                "total_count": "0",
                "failed_count": "0",
                "completed_count": "0",
                "errors": []
            })
Пример #4
0
    def test_check_status_success(self):
        """"
        Test method for metadata deployment
        """
        # pylint: disable-msg=C0301
        mock_response = '<?xml version="1.0" ' \
                        'encoding="UTF-8"?><soapenv:Envelope ' \
                        'xmlns:soapenv="http://schemas.xmlsoap.org/soap' \
                        '/envelope/" ' \
                        'xmlns="http://soap.sforce.com/2006/04/metadata' \
                        '"><soapenv:Body><checkDeployStatusResponse><result' \
                        '><checkOnly>false</checkOnly><completedDate>2020-10' \
                        '-28T13:33:29.000Z</completedDate><createdBy' \
                        '>0053D0000052Xaq</createdBy><createdByName>User ' \
                        'User</createdByName><createdDate>2020-10-28T13:33:25' \
                        '.000Z</createdDate><details><componentSuccesses' \
                        '><changed>true</changed><componentType>ApexSettings' \
                        '</componentType><created>false</created><createdDate' \
                        '>2020-10-28T13:33:29.000Z</createdDate><deleted' \
                        '>false</deleted><fileName>shape/settings/Apex' \
                        '.settings</fileName><fullName>Apex</fullName' \
                        '><success>true</success></componentSuccesses' \
                        '><componentSuccesses><changed>true</changed' \
                        '><componentType>ChatterSettings</componentType' \
                        '><created>false</created><createdDate>2020-10-28T13' \
                        ':33:29.000Z</createdDate><deleted>false</deleted' \
                        '><fileName>shape/settings/Chatter.settings</fileName' \
                        '><fullName>Chatter</fullName><success>true</success' \
                        '></componentSuccesses><componentSuccesses><changed' \
                        '>true</changed><componentType></componentType' \
                        '><created>false</created><createdDate>2020-10-28T13' \
                        ':33:29.000Z</createdDate><deleted>false</deleted' \
                        '><fileName>shape/package.xml</fileName><fullName' \
                        '>package.xml</fullName><success>true</success' \
                        '></componentSuccesses><componentSuccesses><changed' \
                        '>true</changed><componentType>LightningExperienceSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/LightningExperience.settings</fileName><fullName>LightningExperience</fullName><success>true</success></componentSuccesses><componentSuccesses><changed>true</changed><componentType>LanguageSettings</componentType><created>false</created><createdDate>2020-10-28T13:33:29.000Z</createdDate><deleted>false</deleted><fileName>shape/settings/Language.settings</fileName><fullName>Language</fullName><success>true</success></componentSuccesses><runTestResult><numFailures>0</numFailures><numTestsRun>0</numTestsRun><totalTime>0.0</totalTime></runTestResult></details><done>true</done><id>0Af3D00001NVCnwSAH</id><ignoreWarnings>false</ignoreWarnings><lastModifiedDate>2020-10-28T13:33:29.000Z</lastModifiedDate><numberComponentErrors>0</numberComponentErrors><numberComponentsDeployed>4</numberComponentsDeployed><numberComponentsTotal>4</numberComponentsTotal><numberTestErrors>0</numberTestErrors><numberTestsCompleted>0</numberTestsCompleted><numberTestsTotal>0</numberTestsTotal><rollbackOnError>true</rollbackOnError><runTestsEnabled>false</runTestsEnabled><startDate>2020-10-28T13:33:26.000Z</startDate><status>Succeeded</status><success>true</success></result></checkDeployStatusResponse></soapenv:Body></soapenv:Envelope>'

        responses.add(
            responses.POST,
            re.compile(r'^https://.*/deployRequest/abdcefg'),
            body=mock_response,
            status=http.OK
            )

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.INSTANCE_URL,
                            session=session)
        result = client.checkDeployStatus(
            "abdcefg", sandbox=False)
        self.assertEqual(result.get('state'), "Succeeded")
        self.assertEqual(result.get('state_detail'), None)
        self.assertEqual(result.get('deployment_detail'), {
            'total_count': '4', 'failed_count': '0', 'deployed_count': '4',
            'errors': []
            })
        self.assertEqual(result.get('unit_test_detail'), {
            'total_count': '0', 'failed_count': '0', 'completed_count': '0',
            'errors': []
            })
Пример #5
0
    def test_check_status_payload_error(self):
        """"
        Test method for metadata deployment
        """
        # pylint: disable-msg=C0301
        mock_response = '<?xml version="1.0" ' \
                        'encoding="UTF-8"?><soapenv:Envelope ' \
                        'xmlns:soapenv="http://schemas.xmlsoap.org/soap' \
                        '/envelope/" ' \
                        'xmlns="http://soap.sforce.com/2006/04/metadata' \
                        '"><soapenv:Body><checkDeployStatusResponse><result' \
                        '><checkOnly>true</checkOnly><completedDate>2020-10' \
                        '-28T13:37:48.000Z</completedDate><createdBy' \
                        '>0053D0000052Xaq</createdBy><createdByName>User ' \
                        'User</createdByName><createdDate>2020-10-28T13:37:46' \
                        '.000Z</createdDate><details><componentFailures' \
                        '><changed>false</changed><componentType' \
                        '></componentType><created>false</created' \
                        '><createdDate>2020-10-28T13:37:47.000Z</createdDate' \
                        '><deleted>false</deleted><fileName>package.xml' \
                        '</fileName><fullName>package.xml</fullName><problem' \
                        '>No package.xml ' \
                        'found</problem><problemType>Error</problemType' \
                        '><success>false</success></componentFailures' \
                        '><runTestResult><numFailures>0</numFailures' \
                        '><numTestsRun>0</numTestsRun><totalTime>0.0' \
                        '</totalTime></runTestResult></details><done>true' \
                        '</done><id>0Af3D00001NVD0TSAX</id><ignoreWarnings' \
                        '>false</ignoreWarnings><lastModifiedDate>2020-10' \
                        '-28T13:37:48.000Z</lastModifiedDate' \
                        '><numberComponentErrors>0</numberComponentErrors' \
                        '><numberComponentsDeployed>0</numberComponentsDeployed><numberComponentsTotal>0</numberComponentsTotal><numberTestErrors>0</numberTestErrors><numberTestsCompleted>0</numberTestsCompleted><numberTestsTotal>0</numberTestsTotal><rollbackOnError>true</rollbackOnError><runTestsEnabled>false</runTestsEnabled><startDate>2020-10-28T13:37:47.000Z</startDate><status>Failed</status><success>false</success></result></checkDeployStatusResponse></soapenv:Body></soapenv:Envelope>'

        responses.add(
            responses.POST,
            re.compile(r'^https://.*/deployRequest/abdcefg'),
            body=mock_response,
            status=http.OK
            )

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.INSTANCE_URL,
                            session=session)
        result = client.checkDeployStatus(
            "abdcefg", sandbox=False)
        self.assertEqual(result.get('state'), "Failed")
        self.assertEqual(result.get('state_detail'), None)
        self.assertEqual(result.get('deployment_detail'), {
            'total_count': '0', 'failed_count': '0', 'deployed_count': '0',
            'errors': [{
                'type': None, 'file': 'package.xml',
                'status': 'Error', 'message': 'No package.xml found'
                }]
            })
        self.assertEqual(result.get('unit_test_detail'), {
            'total_count': '0', 'failed_count': '0', 'completed_count': '0',
            'errors': []
            })
Пример #6
0
    def test_check_status_payload_error(self, mock_post):
        """ "
        Test method for metadata deployment
        """
        mock_response = Mock()
        mock_response.status_code = 200
        mock_response.text = '<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://soap.sforce.com/2006/04/metadata"><soapenv:Body><checkDeployStatusResponse><result><checkOnly>true</checkOnly><completedDate>2020-10-28T13:37:48.000Z</completedDate><createdBy>0053D0000052Xaq</createdBy><createdByName>User User</createdByName><createdDate>2020-10-28T13:37:46.000Z</createdDate><details><componentFailures><changed>false</changed><componentType></componentType><created>false</created><createdDate>2020-10-28T13:37:47.000Z</createdDate><deleted>false</deleted><fileName>package.xml</fileName><fullName>package.xml</fullName><problem>No package.xml found</problem><problemType>Error</problemType><success>false</success></componentFailures><runTestResult><numFailures>0</numFailures><numTestsRun>0</numTestsRun><totalTime>0.0</totalTime></runTestResult></details><done>true</done><id>0Af3D00001NVD0TSAX</id><ignoreWarnings>false</ignoreWarnings><lastModifiedDate>2020-10-28T13:37:48.000Z</lastModifiedDate><numberComponentErrors>0</numberComponentErrors><numberComponentsDeployed>0</numberComponentsDeployed><numberComponentsTotal>0</numberComponentsTotal><numberTestErrors>0</numberTestErrors><numberTestsCompleted>0</numberTestsCompleted><numberTestsTotal>0</numberTestsTotal><rollbackOnError>true</rollbackOnError><runTestsEnabled>false</runTestsEnabled><startDate>2020-10-28T13:37:47.000Z</startDate><status>Failed</status><success>false</success></result></checkDeployStatusResponse></soapenv:Body></soapenv:Envelope>'
        mock_post.return_value = mock_response

        session = requests.Session()
        client = Salesforce(session_id=tests.SESSION_ID,
                            instance=tests.SERVER_URL,
                            session=session)
        state, state_detail, deployment_detail, unit_test_detail = client.checkDeployStatus(
            "abdcefg")
        self.assertEqual(state, "Failed")
        self.assertEqual(state_detail, None)
        self.assertEqual(
            deployment_detail,
            {
                "total_count":
                "0",
                "failed_count":
                "0",
                "deployed_count":
                "0",
                "errors": [{
                    "type": None,
                    "file": "package.xml",
                    "status": "Error",
                    "message": "No package.xml found"
                }],
            },
        )
        self.assertEqual(
            unit_test_detail, {
                "total_count": "0",
                "failed_count": "0",
                "completed_count": "0",
                "errors": []
            })