Esempio n. 1
0
    def patch_case_request_title(self,
                                 case_request=None,
                                 case_request_id=None,
                                 payload=None):
        if not case_request and case_request_id:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(),
                      path="$.links[?(@.rel=='modifytitle')].href")

        json = MongoDBConnection(db='TestData', coll='JsonModels')
        json = json.coll.find_one({'json_model': 'modify_case_request_title'},
                                  {
                                      'payload': 1,
                                      '_id': 0
                                  })

        if not payload:
            payload = extract(body=json, path='$.payload')

        r = self._user.patch(url=url, payload=payload)
        return r
Esempio n. 2
0
    def post_case_request_document(self,
                                   file,
                                   case_request=None,
                                   case_request_id=None):
        if case_request_id and case_request:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                "Must specify opportunity or opportunity id to patch document to."
            )

        url = extract(body=case_request.json(),
                      path='$.links[?(@.rel=="modifycasedocuments")].href')
        filename = 'test_document.pdf'

        mp_encoder = MultipartEncoder(
            fields={
                'documentDetail': dumps({"fileName": filename}),
                'file': (filename, file.open(mode='rb'), 'application/pdf'),
            })

        r = self._user.post(url=url, data=mp_encoder, to_string=True)
        url = extract(body=r.json(), path='$.case.links[[email protected]=="self"].href')
        r = self._user.get(url=url)

        return r
    def put_case_contact(self, case_request=None, case_request_id=None, contact_id=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(case_request_id=case_request_id)
        elif not case_request:
            raise ValueError('Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(), path='$.links[?(@.rel=="modifycasecontacts")].href')
        payload = self.set_valid_contact_to_patch(case_request=case_request, contact_id=contact_id)

        r = self._user.put(url=url, payload=payload)
        url = extract(body=r.json(), path='$.caseContacts..case.links[?(@.rel=="self")].href')
        r = self._user.get(url=url)
        return r
Esempio n. 4
0
    def patch_case_request_title(self,
                                 case_request=None,
                                 case_request_id=None,
                                 payload=None):
        if not case_request and case_request_id:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(),
                      path="$.links[?(@.rel=='modifytitle')].href")

        json = MongoDBConnection(db='TestData', coll='JsonModels')
        json = json.coll.find_one({'json_model': 'modify_case_request_title'},
                                  {
                                      'payload': 1,
                                      '_id': 0
                                  })

        if not payload:
            payload = json.get('payload')

        payload = update_json(body=payload,
                              values={
                                  '$.caseTitle':
                                  "aut_test_%s" %
                                  datetime.now().strftime("DS1_%Y%m%d_%H%M")
                              })
        r = self._user.patch(url=url, payload=payload)
        return r
    def set_valid_contact_to_patch(self,
                                   case_request=None,
                                   case_request_id=None,
                                   contact_id=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        contacts = self.get_case_available_contacts(case_request=case_request)

        contacts_ids = extract(body=contacts.json(),
                               path='$.contacts..contactId',
                               multiple=True)
        if contact_id and contact_id in contacts and isinstance(
                contact_id, int):
            print('ContactId available! continue...')
            return self.prepare_contact_payload(contact_id=contact_id)
        else:
            try:
                print('Choosing the first contact available of: %s' %
                      contacts_ids)
                return self.prepare_contact_payload(contact_id=contacts_ids[0])
            except IndexError as e:
                raise (
                    'There are no contacts available for the chosen case. Check data.'
                )
    def get_case_available_contacts(self, case_request=None, case_request_id=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(case_request_id=case_request_id)
        elif not case_request:
            raise ValueError('Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(), path='$.links[?(@.rel=="contacts")].href')
        r = self._user.get(url=url)
        return r
Esempio n. 7
0
    def get_case_types(self, case_request_id=None, case_request=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(),
                      path="$.links[?(@.rel=='casetypes')].href")

        types = self._user.get(url=url)
        return types
Esempio n. 8
0
    def patch_case_request_type(self,
                                case_request_id=None,
                                case_request=None,
                                case_type_id=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        types = self.get_case_types(case_request=case_request)

        type_ids = extract(body=types.json(),
                           path='$.caseTypes..caseTypeId',
                           multiple=True)

        if type_ids:
            if case_type_id in type_ids:
                print('CaseTypeId available! continue')
                url = extract(
                    body=types.json(),
                    path=
                    '$.caseTypes[?(@.caseTypeId==1)].links[?(@.method=="PATCH")].href'
                )
            else:
                print('Choosing first caseTypeId available of: %s' % type_ids)
                url = extract(
                    body=types.json(),
                    path='$.caseTypes[0].links[?(@.method=="PATCH")].href')

            r = self._user.patch(url=url)
            return r
        elif not type_ids:
            raise (
                'There are no case types available for the chosen case. Check data.'
            )
Esempio n. 9
0
    def login(self):
        api = ConfigLogin().configure_test_data_login(env=self._env)
        headers = extract(body=api, path="$..headers")
        body = extract(body=api, path="$..body")

        body = update_json(body=body,
                           values={
                               "username": self._user,
                               "password": self._password
                           })

        url = extract(body=api, path="$..url")
        self._session = self.post(url=url,
                                  data=body,
                                  headers=headers,
                                  login=True)
        self.store_session_id(response=self._session)
        self.store_user_roles(response=self._session)

        print('\n User logged in: %s' % self._user)
        print('LegalEntity chosen: %s' % self._legal_entity)
        print('-' * 20)

        return self._session
Esempio n. 10
0
    def post_new_case_request(self, customer_id=None, payload=None):
        json = MongoDBConnection(db='TestData', coll='JsonModels')
        json = json.coll.find_one({'json_model': 'new_case_request'}, {
            'payload': 1,
            'url': 1,
            '_id': 0
        })
        url = extract(body=json, path='$.url')

        if not payload and customer_id:
            payload = update_json(body=json['payload'],
                                  values={'$..customerId': customer_id})

        r = self._user.post(url=url, payload=payload)
        return r
Esempio n. 11
0
    def patch_case_to_requested(self, case_request_id=None, case_request=None):
        if case_request_id and not case_request:
            case_request = self.get_case_request_by_id(
                case_request_id=case_request_id)
        elif not case_request:
            raise ValueError(
                'Must specify case object or case id to patch description.')

        url = extract(body=case_request.json(),
                      path='$.links[?(@.rel=="requested")].href')
        if url:
            r = self._user.patch(url=url)
        else:
            raise ('CaseRequest is not ready to be requested. Check data.')

        return r
Esempio n. 12
0
 def configure_environment(self, env, layer):
     env_object = self._config.coll.find_one({'name': env})
     base_url = extract(body=env_object, path='$.%s' % layer)
     return base_url
Esempio n. 13
0
 def post_new(self, legal_entity_id=None, payload=None):
     r = self.post_new_opportunity(legal_entity_id=legal_entity_id, body=payload)
     self._id = extract(body=r.json(), path="$..opportunityId")
     return r