Skip to content

Commit

Permalink
fix merge conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
work-mohit committed Oct 2, 2023
1 parent 2874a65 commit d134b6a
Showing 1 changed file with 305 additions and 0 deletions.
305 changes: 305 additions & 0 deletions tests/mocked/test_databases.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,72 @@
from pydo import Client


@responses.activate
def test_databases_add(mock_client: Client, mock_client_url):
"""Mocks the databases add database operation."""

expected = {"db": {"name": "alpha"}}

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

responses.add(
responses.POST,
f"{mock_client_url}/v2/databases/{cluster_uuid}/dbs",
json=expected,
status=201,
)

resp = mock_client.databases.add(cluster_uuid, {"name": "alpha"})

assert expected == resp


@responses.activate
def test_databases_add_connection_pool(mock_client: Client, mock_client_url):
"""Mocks the databases add connection pool operation."""

expected = {
"pool": {
"user": "doadmin",
"name": "backend-pool",
"size": 10,
"db": "defaultdb",
"mode": "transaction",
"connection": {
"uri": "postgres://doadmin:wv78n3zpz42xezdk@backend-do-user-19081923-0.db.ondigitalocean.com:25061/backend-pool?sslmode=require",
"database": "backend-pool",
"host": "backend-do-user-19081923-0.db.ondigitalocean.com",
"port": 25061,
"user": "doadmin",
"password": "wv78n3zpz42xezdk",
"ssl": True,
},
}
}

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

responses.add(
responses.POST,
f"{mock_client_url}/v2/databases/{cluster_uuid}/pools",
json=expected,
status=201,
)

resp = mock_client.databases.add_connection_pool(
cluster_uuid,
{
"name": "backend-pool",
"mode": "transaction",
"size": 10,
"db": "defaultdb",
"user": "doadmin",
},
)

assert expected == resp


@responses.activate
def test_databases_update_connection_pool(mock_client: Client, mock_client_url):
"""Mocks the databases update connection pool operation."""
Expand All @@ -28,6 +94,103 @@ def test_databases_update_connection_pool(mock_client: Client, mock_client_url):
assert resp is None


@responses.activate
def test_databases_create_cluster(mock_client: Client, mock_client_url):
"""Mocks the databases create cluster operation."""

expected = {
"database": {
"id": "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
"name": "backend-cluster",
"engine": "pg",
"version": "14",
"semantic_version": "14.5",
"connection": {
"uri": "postgres://doadmin:wv78n3zpz42xezdk@backend-do-user-19081923-0.db.ondigitalocean.com:25060/defaultdb?sslmode=require",
"database": "",
"host": "backend-do-user-19081923-0.db.ondigitalocean.com",
"port": 25060,
"user": "doadmin",
"password": "wv78n3zpz42xezdk",
"ssl": True,
},
"private_connection": {
"uri": "postgres://doadmin:wv78n3zpz42xezdk@private-backend-do-user-19081923-0.db.ondigitalocean.com:25060/defaultdb?sslmode=require",
"database": "",
"host": "private-backend-do-user-19081923-0.db.ondigitalocean.com",
"port": 25060,
"user": "doadmin",
"password": "wv78n3zpz42xezdk",
"ssl": True,
},
"users": [
{"name": "doadmin", "role": "primary", "password": "wv78n3zpz42xezdk"}
],
"db_names": ["defaultdb"],
"num_nodes": 3,
"region": "nyc3",
"status": "creating",
"created_at": "2019-01-11T18:37:36Z",
"maintenance_window": {
"day": "saturday",
"hour": "08:45:12",
"pending": True,
"description": [
"Update TimescaleDB to version 1.2.1",
"Upgrade to PostgreSQL 11.2 and 10.7 bugfix releases",
],
},
"size": "db-s-2vcpu-4gb",
"tags": ["production"],
"private_network_uuid": "d455e75d-4858-4eec-8c95-da2f0a5f93a7",
"version_end_of_life": "2023-11-09T00:00:00Z",
"version_end_of_availability": "2023-05-09T00:00:00Z",
}
}

responses.add(
responses.POST,
f"{mock_client_url}/v2/databases",
json=expected,
status=201,
)

resp = mock_client.databases.create_cluster(
{
"name": "backend-cluster",
"engine": "pg",
"version": "14",
"region": "nyc3",
"size": "db-s-2vcpu-4gb",
"num_nodes": 3,
"tags": ["production"],
}
)

assert expected == resp


@responses.activate
def test_databases_add_user(mock_client: Client, mock_client_url):
"""Mocks the databases add user operation."""

expected = {
"user": {"name": "app-01", "role": "normal", "password": "jge5lfxtzhx42iff"}
}
cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

responses.add(
responses.POST,
f"{mock_client_url}/v2/databases/{cluster_uuid}/users",
json=expected,
status=201,
)

resp = mock_client.databases.add_user(cluster_uuid, {"name": "app-01"})

assert expected == resp


@responses.activate
def test_databases_update_major_version(mock_client: Client, mock_client_url):
"""Mocks the databases update major version."""
Expand All @@ -48,6 +211,54 @@ def test_databases_update_major_version(mock_client: Client, mock_client_url):
assert resp is None


@responses.activate
def test_databases_create_replica(mock_client: Client, mock_client_url):
"""Mocks the databases create replica operation."""

expected = {
"replica": {
"name": "read-nyc3-01",
"connection": {
"uri": "",
"database": "defaultdb",
"host": "read-nyc3-01-do-user-19081923-0.db.ondigitalocean.com",
"port": 25060,
"user": "doadmin",
"password": "wv78n3zpz42xezdk",
"ssl": True,
},
"private_connection": {
"uri": "postgres://doadmin:wv78n3zpz42xezdk@private-read-nyc3-01-do-user-19081923-0.db.ondigitalocean.com:25060/defaultdb?sslmode=require",
"database": "",
"host": "private-read-nyc3-01-do-user-19081923-0.db.ondigitalocean.com",
"port": 25060,
"user": "doadmin",
"password": "wv78n3zpz42xezdk",
"ssl": True,
},
"region": "nyc3",
"status": "online",
"created_at": "2019-01-11T18:37:36Z",
}
}

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

responses.add(
responses.POST,
f"{mock_client_url}/v2/databases/{cluster_uuid}/replicas",
json=expected,
status=201,
)

resp = mock_client.databases.create_replica(
cluster_uuid,
{"name": "read-nyc3-01", "region": "nyc3", "size": "db-s-2vcpu-4gb"},
)

assert expected == resp


@responses.activate
def test_databases_promote_replica(mock_client: Client, mock_client_url):
"""Mocks the databases promote replica to primary cluster function."""
Expand All @@ -67,6 +278,7 @@ def test_databases_promote_replica(mock_client: Client, mock_client_url):


@responses.activate
<<<<<<< HEAD
def test_databases_get_user(mock_client: Client, mock_client_url):
"""Mocks the databases get user method."""

Expand Down Expand Up @@ -500,3 +712,96 @@ def test_databases_list_users(mock_client: Client, mock_client_url):
resp = mock_client.databases.list_users(cluster_uuid)

assert expected == resp
=======
def test_databases_delete(mock_client: Client, mock_client_url):
"""Mocks the databases delete operation."""

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"
database_name = "alpha"

responses.add(
responses.DELETE,
f"{mock_client_url}/v2/databases/{cluster_uuid}/dbs/{database_name}",
status=204,
)

resp = mock_client.databases.delete(cluster_uuid, database_name)

assert resp is None


@responses.activate
def test_databases_delete_connection_pool(mock_client: Client, mock_client_url):
"""Mocks the databases delete connection pool operation."""

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

pool_name = "backend-pool"

responses.add(
responses.DELETE,
f"{mock_client_url}/v2/databases/{cluster_uuid}/pools/{pool_name}",
status=204,
)

resp = mock_client.databases.delete_connection_pool(cluster_uuid, pool_name)

assert resp is None


@responses.activate
def test_databases_delete_online_migration(mock_client: Client, mock_client_url):
"""Mocks the databases delete online migration operation."""

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

migration_id = "77b28fc8-19ff-11eb-8c9c-c68e24557488"

responses.add(
responses.DELETE,
f"{mock_client_url}/v2/databases/{cluster_uuid}/online-migration/{migration_id}",
status=204,
)

resp = mock_client.databases.delete_online_migration(cluster_uuid, migration_id)

assert resp is None


@responses.activate
def test_databases_delete_user(mock_client: Client, mock_client_url):
"""Mocks the databases delete user operation."""

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

user_name = "app-01"

responses.add(
responses.DELETE,
f"{mock_client_url}/v2/databases/{cluster_uuid}/users/{user_name}",
status=204,
)

resp = mock_client.databases.delete_user(cluster_uuid, user_name)

assert resp is None


@responses.activate
def test_databases_destroy_replica(mock_client: Client, mock_client_url):
"""Mocks the databases destroy replica operation that destroy a read only replica."""

cluster_uuid = "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30"

replica_name = "read_nyc_3"

responses.add(
responses.DELETE,
f"{mock_client_url}/v2/databases/{cluster_uuid}/replicas/{replica_name}",
status=204,
)

resp = mock_client.databases.destroy_replica(cluster_uuid, replica_name)

assert resp is None
>>>>>>> e83536b8fadeafc89659d7c9da3f6fb0cf4e0a04

0 comments on commit d134b6a

Please sign in to comment.