Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/dev_workflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
######### Dev Workflow ########
on:
pull_request:
branches: [dev]
types:
- closed
workflow_dispatch:

jobs:
Build:
environment: Development
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: azure/docker-login@v1
with:
login-server: ${{ secrets.REGISTRY_DOMAIN }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Publish image to Azure Registry
run: |
docker build -t ${{ secrets.REGISTRY_DOMAIN }}/${{ secrets.REGISTRY_REPO }}:${{ github.sha }} -t ${{ secrets.REGISTRY_DOMAIN }}/${{ secrets.REGISTRY_REPO }}:${{ github.ref_name == 'master' && 'prod' || github.ref_name }}${{ github.ref_name != 'master' && '-latest' || 'latest' }} .
docker push ${{ secrets.REGISTRY_DOMAIN }}/${{ secrets.REGISTRY_REPO }} --all-tags
Deploy:
needs: Build
environment:
name: Development
runs-on: ubuntu-latest
steps:
- name: Deploy to Dev
uses: azure/webapps-deploy@v2
with:
app-name: ${{ secrets.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
images: ${{ secrets.REGISTRY_DOMAIN }}/${{ secrets.REGISTRY_REPO }}:${{ github.sha }}
8 changes: 8 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.10
WORKDIR /code
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
RUN python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple python-osw-validation==0.0.3
COPY ./src /code/src
EXPOSE 8080
CMD ["uvicorn", "src.main:app", "--reload", "--host", "0.0.0.0", "--port", "8080"]
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,4 @@ The format is mentioned in [osw-upload.json](./src/assets/osw-upload.json)
#### Outgoing
The outgoing messages will be to the `osw-validation` topic.
The format of the message is at [osw-validation.json](./src/assets/osw-validation.json)

3 changes: 1 addition & 2 deletions src/assets/osw-upload.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
"collected_by": "6D3E5B8C-FB16-4B6A-9436-72FD24756CC9",
"collection_date": "2022-11-22T09:43:07.978Z",
"collection_method": "manual",
"valid_from": "2022-11-22T09:43:07.978Z",
"valid_to": "2022-11-22T09:43:07.978Z",
"publication_date": "2022-11-22T09:43:07.978Z",
"data_source": "local",
"polygon": {
"coordinates": [
Expand Down
34 changes: 13 additions & 21 deletions src/models/queue_message_content.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,27 +113,20 @@ def to_json(self):
class Request:
def __init__(self, data: dict):
self._tdei_org_id = data.get('tdei_org_id', '')
self._tdei_station_id = data.get('tdei_station_id', '')
self._collected_by = data.get('collected_by', '')
self._collection_date = data.get('collection_date', '')
self._collection_method = data.get('collection_method', '')
self._valid_from = data.get('valid_from', '')
self._valid_to = data.get('valid_to', '')
self._publication_date = data.get('publication_date', '')
self._data_source = data.get('data_source', '')
self._polygon = data.get('polygon', {})
self._osw_schema_version = data.get('osw_schema_version', '')

@property
def tdei_org_id(self): return self._tdei_org_id

@tdei_org_id.setter
def tdei_org_id(self, value): self._tdei_org_id = value

@property
def tdei_station_id(self): return self._tdei_station_id

@tdei_station_id.setter
def tdei_station_id(self, value): self._tdei_station_id = value

@property
def collected_by(self): return self._collected_by

Expand All @@ -152,18 +145,6 @@ def collection_method(self): return self._collection_method
@collection_method.setter
def collection_method(self, value): self._collection_method = value

@property
def valid_from(self): return self._valid_from

@valid_from.setter
def valid_from(self, value): self._valid_from = value

@property
def valid_to(self): return self._valid_to

@valid_to.setter
def valid_to(self, value): self._valid_to = value

@property
def data_source(self): return self._data_source

Expand All @@ -176,6 +157,17 @@ def polygon(self): return self._polygon
@polygon.setter
def polygon(self, value): self._polygon = value

@property
def publication_date(self): return self._publication_date

@publication_date.setter
def publication_date(self, value): self._publication_date = value

@property
def osw_schema_version(self): return self._osw_schema_version

@osw_schema_version.setter
def osw_schema_version(self, value): self._osw_schema_version = value


class Meta:
Expand Down
2 changes: 1 addition & 1 deletion src/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def is_osw_valid(self) -> ValidationResult:
result.is_valid = validation_result.is_valid
if not result.is_valid:
result.validation_message = validation_result.errors
# logger.error(f' Error While Validating File: {str(validation_result.errors)}')
logger.error(f' Error While Validating File: {str(validation_result.errors)}')
Validation.clean_up(downloaded_file_path)
else:
result.validation_message = 'Failed to validate because unknown file format'
Expand Down
2 changes: 1 addition & 1 deletion test_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import HtmlTestRunner

# Define your test cases
from tests.unit_tests.test_queue_message_contant import TestUpload, TestUploadData, TestRequest, \
from tests.unit_tests.test_queue_message_content import TestUpload, TestUploadData, TestRequest, \
TestMeta, TestResponse, TestToJson, TestValidationResult
from tests.unit_tests.test_validation import TestSuccessValidation, TestFailureValidation
from tests.unit_tests.test_osw_validator import TestOSWValidator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,51 @@ def test_user_id(self):
class TestRequest(unittest.TestCase):

def setUp(self):
data = TEST_DATA['data']
data = TEST_DATA['data']['request']
self.request = Request(data)

def test_tdei_org_id(self):
self.assertEqual(self.request.tdei_org_id, '0b41ebc5-350c-42d3-90af-3af4ad3628fb')
self.request.tdei_org_id = 'Test org ID'
self.assertEqual(self.request.tdei_org_id, 'Test org ID')

# Add more test cases for other properties of Request
def test_collected_by(self):
self.assertEqual(self.request.collected_by, '6D3E5B8C-FB16-4B6A-9436-72FD24756CC9')
self.request.collected_by = 'Test Collected By'
self.assertEqual(self.request.collected_by, 'Test Collected By')

def test_collection_date(self):
self.assertEqual(self.request.collection_date, '2022-11-22T09:43:07.978Z')
self.request.collection_date = 'Test Collected Date'
self.assertEqual(self.request.collection_date, 'Test Collected Date')

def test_collection_method(self):
self.assertEqual(self.request.collection_method, 'manual')
self.request.collection_method = 'Test Collected Method'
self.assertEqual(self.request.collection_method, 'Test Collected Method')

def test_publication_date(self):
self.assertEqual(self.request.publication_date, '2022-11-22T09:43:07.978Z')
self.request.publication_date = 'Test Publication Date'
self.assertEqual(self.request.publication_date, 'Test Publication Date')

def test_data_source(self):
self.assertEqual(self.request.data_source, 'local')
self.request.data_source = 'Test Data Source'
self.assertEqual(self.request.data_source, 'Test Data Source')

def test_polygon(self):
self.request.polygon = {
'test': 'Polygon'
}
self.assertEqual(self.request.polygon, {
'test': 'Polygon'
})

def test_osw_schema_version(self):
self.assertEqual(self.request.osw_schema_version, '1.0.0')
self.request.osw_schema_version = '1.1.0'
self.assertEqual(self.request.osw_schema_version, '1.1.0')


class TestMeta(unittest.TestCase):
Expand All @@ -127,6 +163,12 @@ def test_success(self):
self.response.success = False
self.assertEqual(self.response.success, False)

def test_message(self):
self.assertEqual(self.response.message,
'File uploaded for the Organization : 0b41ebc5-350c-42d3-90af-3af4ad3628fb with tdei record id : c8c76e89f30944d2b2abd2491bd95337')
self.response.message = 'Successful'
self.assertEqual(self.response.message, 'Successful')


class TestToJson(unittest.TestCase):
def test_to_json(self):
Expand Down