예제 #1
0
    def testupdate_name_v2(self, mock_request):
        mock_v3_get = Path("tests/fixtures/responses/secrets/v3/get.json")
        mock_v2_update_name = Path(
            "tests/fixtures/responses/secrets/v2/update_name.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v3_get.open().read())),
            MockResponse(
                response=json.loads(mock_v2_update_name.open().read())),
        ]

        secret = vercel.Secret.get("test-secret")
        secret.update_name(name="new-name")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v3/now/secrets/test-secret",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="PATCH",
                url="https://api.vercel.com/v2/now/secrets/secret-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={"name": "new-name"},
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #2
0
    def test_delete_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/projects/v1/get.json")
        mock_v1_delete = Path(
            "tests/fixtures/responses/projects/v1/delete.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(response=json.loads(mock_v1_delete.open().read())),
        ]

        project = vercel.Project.get("test-project")
        project.delete()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/projects/test-project",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="DELETE",
                url="https://api.vercel.com/v1/projects/project-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #3
0
    def test_add_domain_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/projects/v1/get.json")
        mock_v1_add_domain = Path(
            "tests/fixtures/responses/projects/v1/add_domain.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(
                response=json.loads(mock_v1_add_domain.open().read())),
        ]

        project = vercel.Project.get("test-project")
        project.add_domain("foobar.com")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/projects/test-project",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v1/projects/project-id/alias",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={"domain": "foobar.com"},
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #4
0
    def test_purchase_v4(self, mock_request):
        mock_v4_check_price = Path(
            "tests/fixtures/responses/domains/v4/check_price.json"
        )
        mock_v4_purchase = Path("tests/fixtures/responses/domains/v4/purchase.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v4_check_price.open().read())),
            MockResponse(response=json.loads(mock_v4_purchase.open().read())),
        ]

        checked = vercel.Domain.check_price("test.com")
        checked.purchase()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v4/domains/price",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id", "name": "test.com"},
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v4/domains/buy",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={"name": "test.com", "expectedPrice": 17},
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #5
0
    def test_list_aliases_with_project_filter_v3(self, mock_request):
        mock_v3_list_one = json.loads(
            Path("tests/fixtures/responses/aliases/v3/list_1.json").open().
            read())
        mock_v3_list_two = json.loads(
            Path("tests/fixtures/responses/aliases/v3/list_2.json").open().
            read())
        mock_v3_list_three = json.loads(
            Path("tests/fixtures/responses/aliases/v3/list_3.json").open().
            read())
        mock_request.side_effect = [
            MockResponse(mock_v3_list_one),
            MockResponse(mock_v3_list_two),
            MockResponse(mock_v3_list_three),
        ]

        aliases = vercel.Alias.list_all(project_id="test-project")

        assert len(aliases) == 6

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v3/now/aliases",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "projectId": "test-project"
                },
            ),
            call(
                url="https://api.vercel.com/v3/now/aliases",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "projectId": "test-project",
                    "since": 1464807790001,
                },
            ),
            call(
                url="https://api.vercel.com/v3/now/aliases",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "projectId": "test-project",
                    "since": 1464807790002,
                },
            ),
        ]
예제 #6
0
    def test_create_dns_record_v2(self, mock_request):
        mock_v4_get = Path("tests/fixtures/responses/domains/v4/get.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v4_get.open().read())),
            MockResponse(response={"uid": "fake-record-id"}),
        ]

        domain = vercel.Domain.get("example.com")
        record = domain.create_dns_record(name="", type="TXT", value="something")

        assert isinstance(record, vercel.DnsRecord)

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v4/domains/example.com",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v2/domains/example.com/records",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
                json={"name": "", "type": "TXT", "value": "something"},
            ),
        ] == mock_request.mock_calls
예제 #7
0
    def test_delete_v4(self, mock_request):
        mock_v4_get = Path("tests/fixtures/responses/domains/v4/get.json")
        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v4_get.open().read())),
            MockResponse(response={}, status_code=204),
        ]

        domain = vercel.Domain.get("example.com")
        domain.delete()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v4/domains/example.com",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="DELETE",
                url="https://api.vercel.com/v4/domains/example.com",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #8
0
    def test_get_dns_record_v2(self, mock_request):
        mock_v4_get = Path("tests/fixtures/responses/domains/v4/get.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v4_get.open().read())),
            MockResponse(response={"uid": "fake-record-id"}),
        ]

        domain = vercel.Domain.get("example.com")
        record = domain.get_dns_record("fake-record-id")

        assert isinstance(record, vercel.DnsRecord)
        assert record.domain_name == "example.com"
        assert record.id == "fake-record-id"

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v4/domains/example.com",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls
예제 #9
0
    def test_cancel_v12(self, mock_request):
        mock_v11_get = Path(
            "tests/fixtures/responses/deployments/v11/get.json")
        mock_v12_cancel = Path(
            "tests/fixtures/responses/deployments/v12/cancel.json")
        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v11_get.open().read())),
            MockResponse(response=json.loads(mock_v12_cancel.open().read())),
        ]

        deployment = vercel.Deployment.get("deployment-id")
        deployment.cancel()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v11/now/deployments/deployment-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="PATCH",
                url=
                "https://api.vercel.com/v12/now/deployments/deployment-id/cancel",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #10
0
    def test_list_secrets_v3(self, mock_request):
        mock_v3_list_one = json.loads(
            Path("tests/fixtures/responses/secrets/v3/list_1.json").open().
            read())
        mock_v3_list_two = json.loads(
            Path("tests/fixtures/responses/secrets/v3/list_2.json").open().
            read())
        mock_v3_list_three = json.loads(
            Path("tests/fixtures/responses/secrets/v3/list_3.json").open().
            read())

        mock_request.side_effect = [
            MockResponse(mock_v3_list_one),
            MockResponse(mock_v3_list_two),
            MockResponse(mock_v3_list_three),
        ]

        secrets = vercel.Secret.list_all()

        assert len(secrets) == 6

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v3/now/secrets",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                url="https://api.vercel.com/v3/now/secrets",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1472684630000
                },
            ),
            call(
                url="https://api.vercel.com/v3/now/secrets",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1472684630001
                },
            ),
        ]
예제 #11
0
    def test_list_all_v1(self, mock_request):
        mock_v4_list_one = json.loads(
            Path("tests/fixtures/responses/projects/v4/list_1.json").open().
            read())
        mock_v4_list_two = json.loads(
            Path("tests/fixtures/responses/projects/v4/list_2.json").open().
            read())
        mock_v4_list_three = json.loads(
            Path("tests/fixtures/responses/projects/v4/list_3.json").open().
            read())

        mock_request.side_effect = [
            MockResponse(mock_v4_list_one),
            MockResponse(mock_v4_list_two),
            MockResponse(mock_v4_list_three),
        ]

        projects = vercel.Project.list_all()

        assert len(projects) == 6

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v4/projects",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                url="https://api.vercel.com/v4/projects",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1555072968396
                },
            ),
            call(
                url="https://api.vercel.com/v4/projects",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1555072968397
                },
            ),
        ]
예제 #12
0
    def test_list_records_v4(self, mock_request):
        mock_v4_list_one = json.loads(
            Path("tests/fixtures/responses/dns/v4/list_1.json").open().read())
        mock_v4_list_two = json.loads(
            Path("tests/fixtures/responses/dns/v4/list_2.json").open().read())
        mock_v4_list_three = json.loads(
            Path("tests/fixtures/responses/dns/v4/list_3.json").open().read())

        mock_request.side_effect = [
            MockResponse(mock_v4_list_one),
            MockResponse(mock_v4_list_two),
            MockResponse(mock_v4_list_three),
        ]

        records = vercel.DnsRecord.list_records("my-domain")

        assert len(records) == 6

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v4/domains/my-domain/records",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                url="https://api.vercel.com/v4/domains/my-domain/records",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1474631619961
                },
            ),
            call(
                url="https://api.vercel.com/v4/domains/my-domain/records",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "since": 1474631619962
                },
            ),
        ]
예제 #13
0
    def test_get_v3(self, mock_request):
        mock_v3_get = Path("tests/fixtures/responses/certificates/v3/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v3_get.open().read()))

        cert = vercel.Certificate.get("certificate-id")

        assert isinstance(cert, vercel.Certificate)

        assert cert.id == "certificate-id"
        assert cert.cns == ["wow.example.com"]
        assert cert.created == "2016-08-23T18:13:09.773Z"
        assert cert.expiration == "2016-12-16T16:00:00.000Z"
        assert cert.auto_renew == True

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v3/now/certs/certificate-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls
예제 #14
0
    def test_delete_v3(self, mock_request):
        mock_v3_get = Path("tests/fixtures/responses/certificates/v3/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v3_get.open().read()))

        team = vercel.Certificate.get("certificate-id")
        team.delete()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v3/now/certs/certificate-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="DELETE",
                url="https://api.vercel.com/v3/now/certs/certificate-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #15
0
    def test_create_record(self, mock_request):
        mock_request.return_value = MockResponse(
            response={"uid": "fake-record-id"})

        record = vercel.DnsRecord.create(domain_name="test.com",
                                         name="",
                                         type="TXT",
                                         value="something")

        assert isinstance(record, vercel.DnsRecord)

        assert [
            call(
                method="POST",
                url="https://api.vercel.com/v2/domains/test.com/records",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
                json={
                    "name": "",
                    "type": "TXT",
                    "value": "something"
                },
            )
        ] == mock_request.mock_calls
예제 #16
0
    def test_update_v1(self, mock_request):
        mock_v4_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v4_get.open().read()))

        team = vercel.Team.get("my-team")
        team.update(slug="new-slug", name="New Name")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "slug": "my-team"
                },
            ),
            call(
                method="PATCH",
                url="https://api.vercel.com/v1/teams/team-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={
                    "slug": "new-slug",
                    "name": "New Name"
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #17
0
    def test_make_request_raises_vercel_error(self, mock_request):
        mock_request.side_effect = [
            MockResponse(
                {"error": {
                    "code": "error_code",
                    "message": "Error Message"
                }})
        ]

        with pytest.raises(vercel.exceptions.VercelError) as e:
            result = vercel.Resource._make_request(
                url="/",
                method="GET",
                headers={"Content-Type": "application-json"},
                params={"teamId": "team-id"},
            )

            assert e.code == "error_code"
            assert e.message == "Error Message"

        assert mock_request.mock_calls == [
            call(
                url="/",
                method="GET",
                headers={"Content-Type": "application-json"},
                params={"teamId": "team-id"},
            )
        ]
예제 #18
0
    def test_get_with_id_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v1_get.open().read()))

        team = vercel.Team.get(id="team-id")

        assert isinstance(team, vercel.Team)

        assert team.name == "My Team"
        assert team.id == "team-id"
        assert team.slug == "my-team"
        assert team.creator_id == "creator-id"
        assert team.created == "2017-04-29T17:21:54.514Z"
        assert team.avatar == None

        assert mock_request.mock_calls == [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams/team-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ]
예제 #19
0
    def test_make_request_honors_headers_and_params(self, mock_request):
        mock_request.side_effect = [MockResponse({})]

        result = vercel.Resource.make_request(
            method="GET",
            resource="/v2/domains",
            headers={"Something": "value"},
            params={"Another": False},
        )

        assert result == {}

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v2/domains",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                    "Something": "value",
                },
                params={
                    "teamId": "fake-team-id",
                    "Another": False
                },
            )
        ]
예제 #20
0
    def test_create_env_var_v4(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/projects/v1/get.json")
        mock_v4_create_env_var = Path(
            "tests/fixtures/responses/projects/v4/create_env_var.json")

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(
                response=json.loads(mock_v4_create_env_var.open().read())),
        ]

        project = vercel.Project.get("test-project")
        project.create_environment_variable(key="my-var",
                                            value="@my-secret",
                                            target="production")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/projects/test-project",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v4/projects/project-id/env",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={
                    "key": "my-var",
                    "value": "@my-secret",
                    "target": "production"
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #21
0
    def test_invite_user_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_v1_invite_user = Path(
            "tests/fixtures/responses/teams/v1/invite_user.json")
        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(
                response=json.loads(mock_v1_invite_user.open().read())),
        ]

        team = vercel.Team.get("my-team")
        team.invite_user(email="*****@*****.**", role="MEMBER")

        assert mock_request.mock_calls == [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "slug": "my-team"
                },
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v1/teams/team-id/members",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
                json={
                    "email": "*****@*****.**",
                    "role": "MEMBER"
                },
            ),
        ]
예제 #22
0
    def test_get_v4(self, mock_request):
        mock_v4_get = Path("tests/fixtures/responses/domains/v4/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v4_get.open().read())
        )

        domain = vercel.Domain.get("example.com")

        assert isinstance(domain, vercel.Domain)

        assert domain.name == "example.com"
        assert domain.id == "domain-id"
        assert domain.service_type == "external"
        assert domain.ns_verified_at == None
        assert domain.txt_verified_at == None
        assert domain.cdn_enabled == False
        assert domain.created_at == 1544658552174
        assert domain.bought_at == None
        assert domain.transferred_at == None
        assert domain.verification_record == "verification-id"
        assert domain.verified == False
        assert domain.nameservers == ["ns1.nameserver.net", "ns2.nameserver.net"]

        assert domain.intended_nameservers == [
            "a.zeit-world.co.uk",
            "c.zeit-world.org",
            "d.zeit-world.com",
            "f.zeit-world.net",
        ]

        creator = domain.creator
        assert isinstance(creator, vercel.Creator)

        assert creator.id == "creator-id"
        assert creator.username == "zeit_user"
        assert creator.email == "*****@*****.**"

        assert domain.suffix == False
        assert domain.aliases == []
        assert domain.certs == []

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v4/domains/example.com",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls
예제 #23
0
    def test_list_members_v2(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_v2_list_members = json.loads(
            Path("tests/fixtures/responses/teams/v2/list_members.json").open().
            read())

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(mock_v2_list_members),
        ]

        team = vercel.Team.get("team-id")
        members = team.list_members()

        assert len(members) == 2

        assert mock_request.mock_calls == [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "slug": "team-id"
                },
            ),
            call(
                url="https://api.vercel.com/v2/teams/team-id/members",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ]
예제 #24
0
    def test_list_aliases_v2(self, mock_request):
        mock_v11_get = Path(
            "tests/fixtures/responses/deployments/v11/get.json")

        mock_v2_list_one = json.loads(
            Path("tests/fixtures/responses/deployments/v2/list_1.json").open().
            read())

        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v11_get.open().read())),
            MockResponse(mock_v2_list_one),
        ]

        deployment = vercel.Deployment.get("deployment-id")
        aliases = deployment.list_aliases()

        assert len(aliases) == 1

        assert mock_request.mock_calls == [
            call(
                url="https://api.vercel.com/v11/now/deployments/deployment-id",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
            call(
                url=
                "https://api.vercel.com/v2/now/deployments/deployment-id/aliases",
                method="GET",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ]
예제 #25
0
    def test_request_to_join_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_v1_request_to_join = Path(
            "tests/fixtures/responses/teams/v1/request_to_join.json")
        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(
                response=json.loads(mock_v1_request_to_join.open().read())),
        ]

        team = vercel.Team.get("my-team")
        team.request_to_join(origin="import")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "slug": "my-team"
                },
            ),
            call(
                method="POST",
                url="https://api.vercel.com/v1/teams/team-id/request",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
                json={"origin": "import"},
            ),
        ] == mock_request.mock_calls
예제 #26
0
    def test_remove_user_v1(self, mock_request):
        mock_v1_get = Path("tests/fixtures/responses/teams/v1/get.json")
        mock_v1_remove_user = Path(
            "tests/fixtures/responses/teams/v1/remove_user.json")
        mock_request.side_effect = [
            MockResponse(response=json.loads(mock_v1_get.open().read())),
            MockResponse(
                response=json.loads(mock_v1_remove_user.open().read())),
        ]

        team = vercel.Team.get("my-team")
        team.remove_user("user-id")

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/v1/teams",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={
                    "teamId": "fake-team-id",
                    "slug": "my-team"
                },
            ),
            call(
                method="DELETE",
                url="https://api.vercel.com/v1/teams/team-id/members/user-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            ),
        ] == mock_request.mock_calls
예제 #27
0
    def test_delete_record(self, mock_request):
        mock_request.return_value = MockResponse(response={})

        record = vercel.DnsRecord.delete("test.com", "fake-record-id")

        assert [
            call(
                method="DELETE",
                url=
                "https://api.vercel.com/v2/domains/test.com/records/fake-record-id",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls
예제 #28
0
    def test_create_v3(self, mock_request):
        mock_request.return_value = MockResponse(response={})

        vercel.Certificate.create(["test.com"])

        assert [
            call(
                method="POST",
                url="https://api.vercel.com/v3/now/certs",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                json={"domains": ["test.com"]},
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls
예제 #29
0
    def test_create_v1(self, mock_request):
        mock_v1_create = Path(
            "tests/fixtures/responses/projects/v1/create.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_v1_create.open().read()))

        project = vercel.Project.create("test-project")

        assert isinstance(project, vercel.Project)

        # Verify Project Properties
        assert project.id == "project-id"
        assert project.name == "test-project"
        assert 1 == len(project.aliases)
        alias = project.aliases[0]
        assert isinstance(alias, vercel.ProjectAlias)

        # Verify Alias Properties
        assert alias.domain == "test-project.now.sh"
        assert alias.target == "PRODUCTION"
        assert alias.created_at == 1555413045188
        assert alias.configured_by == "A"
        assert alias.configured_changed_at == 1555413045188

        assert project.account_id == "account-id"
        assert project.updated_at == 1555413045188
        assert project.created_at == 1555413045188

        assert project.production_deployment == None
        assert 0 == len(project.latest_deployments)

        assert project.production_deployment == None

        assert [
            call(
                method="POST",
                url="https://api.vercel.com/v1/projects",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
                json={"name": "test-project"},
            )
        ] == mock_request.mock_calls
예제 #30
0
    def test_get(self, mock_request):
        mock_get = Path("tests/fixtures/responses/user/get.json")
        mock_request.return_value = MockResponse(
            response=json.loads(mock_get.open().read())
        )

        user = vercel.User.get()

        assert [
            call(
                method="GET",
                url="https://api.vercel.com/www/user",
                headers={
                    "Content-Type": "application/json",
                    "Authorization": "Bearer fake-api-token",
                },
                params={"teamId": "fake-team-id"},
            )
        ] == mock_request.mock_calls