Skip to content

Commit

Permalink
refactor.
Browse files Browse the repository at this point in the history
  • Loading branch information
rshewitt committed May 10, 2023
1 parent c5b8f0f commit 8c4dbda
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 16 deletions.
12 changes: 2 additions & 10 deletions datagovharvester/extract/utils.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import requests
import json
import os
from datagovharvester.utils.s3_utilities import (
upload_dcatus_to_S3,
create_s3_client,
create_bucket,
create_s3_payload,
)

Expand Down Expand Up @@ -34,19 +31,14 @@ def fetch_url(url):
return data, success


def extract_catalog(url, S3_config, job_id):
def extract_catalog(url, job_id, S3_client, bucket_name):
data, fetch_success = fetch_url(url)

S3, S3_create_error_msg = create_s3_client(S3_config)

bucket_name = os.getenv("S3FILESTORE__AWS_BUCKET_NAME")
bucket_name, bucket_error_msg = create_bucket(S3, bucket_name)

for idx, record in enumerate(data["dataset"]):
record = json.dumps(record)
key_name = f"{job_id}_{idx}_extract.json"
s3_payload = create_s3_payload(record, bucket_name, key_name)

upload_data, upload_error_message = upload_dcatus_to_S3(S3, s3_payload)
upload_data, upload_error_message = upload_dcatus_to_S3(S3_client, s3_payload)

return upload_data, upload_error_message
2 changes: 1 addition & 1 deletion datagovharvester/utils/s3_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def create_s3_client(s3_config):
return S3, error_message


def create_bucket(S3, bucket_name):
def create_s3_bucket(S3, bucket_name):
error_message = None

try:
Expand Down
14 changes: 13 additions & 1 deletion tests/extract/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from dotenv import load_dotenv
import os
from uuid import uuid4
from datagovharvester.utils.s3_utilities import create_s3_client, create_s3_bucket


@pytest.fixture
Expand All @@ -14,7 +15,7 @@ def get_dcatus_job():


@pytest.fixture
def create_s3_client_config():
def create_client_config():
config = {}
load_dotenv()

Expand All @@ -24,3 +25,14 @@ def create_s3_client_config():
config["endpoint_url"] = os.getenv("S3FILESTORE__HOST_NAME")

return config


@pytest.fixture
def create_client(create_client_config):
return create_s3_client(create_client_config)


@pytest.fixture
def create_bucket(create_client):
s3_client, s3_client_msg = create_client
return create_s3_bucket(s3_client, "test-bucket")
8 changes: 4 additions & 4 deletions tests/extract/test_dcatus.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
from datagovharvester.extract.utils import extract_catalog


def test_extract_dcatus(create_s3_client_config, get_dcatus_job):
def test_extract_dcatus(get_dcatus_job, create_client, create_bucket):
success = False

url = get_dcatus_job["url"]
job_id = get_dcatus_job["job_id"]

S3_config = create_s3_client_config
S3_client, S3_msg = create_client
bucket_name, bucket_msg = create_bucket

final_res, final_error_msg = extract_catalog(url, S3_config, job_id)
final_res, final_error_msg = extract_catalog(url, job_id, S3_client, bucket_name)

print(final_error_msg)
if final_error_msg is None:
success = True

Expand Down

1 comment on commit 8c4dbda

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
datagovharvester/extract
   utils.py2622 92%
datagovharvester/utils
   __init__.py00100% 
   json_utilities.py1022 80%
   s3_utilities.py2766 78%
datagovharvester/validate
   __init__.py00100% 
   dcat_us.py200100% 
TOTAL831088% 

Tests Skipped Failures Errors Time
13 0 💤 0 ❌ 0 🔥 15.076s ⏱️

Please sign in to comment.