Source code for acapi2.tests.test_agreements

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""Agreements tests"""

import requests_mock

from acapi2.resources.agreement import Agreement
from acapi2.resources.agreementlist import AgreementList
from acapi2.tests import BaseTest


[docs]@requests_mock.Mocker() class TestAgreements(BaseTest):
[docs] def test_agreement_list(self, mocker): response = { "total": 3, "_links": { "self": {"href": "https://cloud.acquia.com/api/agreements"}, "parent": {"href": "https://cloud.acquia.com/api/"}, }, "_embedded": { "items": [ { "uuid": "efc62c93-8203-4e8b-a8ff-4d18b780d4ab", "document_uuid": "f25d0284-f25f-4e59-" "9c48-7c39ae57b400", "title": "Agreement Title", "body": "<p>Agreement body and text.</p>", "status": "accepted", "created_at": "2017-01-23T12:00:00Z", "updated_at": "2017-01-27T12:00:00Z", "actioned_by": { "uuid": "5aa902c5-f1c1-6c94-edfa-86bc58d0dce3", "first_name": "James", "last_name": "Kirk", "mail": "james.kirk@example.com", "picture_url": "https://accounts.acquia.com/sites" "/default/avatars/456def" "?mail=james.kirk" "@example.com", "username": "james.kirk", }, "reference": { "uuid": "9ab09eba-290d-4ed9-be4d-fa194ab92f39", "name": "Acquia Subscription", "type": "subscription", }, "_links": { "self": { "href": "https://cloud.acquia.com/api" "/agreements/efc62c93-8203-4e8b-" "a8ff-4d18b780d4ab" } }, }, { "uuid": "b63fff64-6c18-4899-acba-00ec6c8930e9", "title": "Another Agreement", "body": "<p>This is the body and text of another " "agreement.</p>", "status": "declined", "created_at": "2017-02-23T12:00:00Z", "updated_at": "2017-02-27T12:00:00Z", "actioned_by": { "uuid": "550e8400-e29b-41d4-a716-446655440000", "first_name": "Jane", "last_name": "Doe", "mail": "jane.doe@example.com", "picture_url": "https://accounts.acquia.com/" "sites/default/avatars/123abc?" "mail=jane.doe" "@example.com", "username": "jane.doe", }, "reference": { "uuid": "9ab09eba-290d-4ed9-be4d-fa194ab92f39", "name": "Acquia Subscription", "type": "subscription", }, "_links": { "self": { "href": "https://cloud.acquia.com/api/" "agreements/b63fff64-6c18-4899-acba-" "00ec6c8930e9" } }, }, { "uuid": "a8777880-8924-494a-abe2-62cc092df269", "title": "A Third Agreement", "body": "<p>This is the body and text of one " "more agreement.</p>", "status": "pending", "created_at": "2017-02-23T12:00:00Z", "updated_at": None, "actioned_by": None, "reference": { "uuid": "9ab09eba-290d-4ed9-be4d-fa194ab92f39", "name": "Acquia Subscription", "type": "subscription", }, "_links": { "self": { "href": "https://cloud.acquia.com/api/" "agreements/a8777880-8924-494a-" "abe2-62cc092df269" } }, }, ] }, } uri = f"{self.endpoint}/agreements" mocker.register_uri("GET", uri, json=response, status_code=200) agrs = self.acquia.agreements() self.assertIsInstance(agrs, AgreementList)
[docs] def test_agreement(self, mocker): uuid = "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" response = { "uuid": uuid, "document_uuid": "f25d0284-f25f-4e59-9c48-7c39ae57b400", "title": "Agreement Title", "body": "<p>Agreement body and text.</p>", "status": "accepted", "created_at": "2017-01-23T12:00:00Z", "updated_at": "2017-01-27T12:00:00Z", "actioned_by": { "uuid": "5aa902c5-f1c1-6c94-edfa-86bc58d0dce3", "first_name": "James", "last_name": "Kirk", "mail": "james.kirk@example.com", "picture_url": "https://accounts.acquia.com/sites/default/" "avatars/456def?mail=james.kirk@example.com", "username": "james.kirk", }, "reference": { "uuid": "9ab09eba-290d-4ed9-be4d-fa194ab92f39", "name": "Acquia Subscription", "type": "subscription", }, "_links": { "self": { "href": "https://cloud.acquia.com/api/agreements/" "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" }, "invitees": { "href": "https://cloud.acquia.com/api/agreements/" "efc62c93-8203-4e8b-a8ff-4d18b780d4ab/invitees" }, "subscription": { "href": "https://cloud.acquia.com/api/subscriptions/" "9ab09eba-290d-4ed9-be4d-fa194ab92f39" }, "actioned_by": { "href": "https://cloud.acquia.com/api/users/" "5aa902c5-f1c1-6c94-edfa-86bc58d0dce3" }, "parent": {"href": "https://cloud.acquia.com/api/agreements"}, }, } uri = f"{self.endpoint}/agreements/{uuid}" mocker.register_uri("GET", uri, json=response, status_code=200) agreement = self.acquia.agreement(uuid) self.assertIsInstance(agreement, Agreement)
[docs] def test_accept_agreement(self, mocker): response = {"message": "The agreement has been accepted."} uuid = "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" uri = f"{self.endpoint}/agreements/{uuid}/actions/accept" mocker.register_uri( url=uri, method="POST", status_code=200, json=response ) response = self.acquia.agreement(uuid).accept() self.assertEqual(response.status_code, 200)
[docs] def test_decline_agreement(self, mocker): response = {"message": "The agreement has been declined."} uuid = "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" uri = f"{self.endpoint}/agreements/{uuid}/actions/decline" mocker.register_uri( url=uri, method="POST", status_code=200, json=response ) response = self.acquia.agreement(uuid).decline() self.assertEqual(response.status_code, 200)
[docs] def test_agreement_invitees(self, mocker): response = { "total": 2, "_links": { "self": { "href": "https://cloud.acquia.com/api/agreements/" "efc62c93-8203-4e8b-a8ff-4d18b780d4ab/invitees" }, "parent": { "href": "https://cloud.acquia.com/api/agreements/" "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" }, }, "_embedded": { "items": [ { "uuid": "u4ee550f-ee0c-102e-8305-1231390f2cc1", "first_name": "User", "last_name": "One", "mail": "user1@example.com", "username": "user.one", "picture_url": "https://accounts.acquia.com/" "path/to/image.png", }, { "uuid": "u4ef8edc-ee0c-102e-8305-1231390f2cc2", "first_name": "User", "last_name": "Two", "mail": "user2@example.com", "username": "user.two", "picture_url": "https://accounts.acquia.com/" "path/to/image.png", }, ] }, } uuid = "efc62c93-8203-4e8b-a8ff-4d18b780d4ab" uri = f"{self.endpoint}/agreements/{uuid}/invitees" mocker.register_uri("GET", uri, json=response, status_code=200) invitees_response = self.acquia.agreement(uuid).invitees() self.assertIn("total", invitees_response)