Skip to content

Commit

Permalink
changed url redirects and first tests
Browse files Browse the repository at this point in the history
  • Loading branch information
K-Beicher committed Feb 15, 2024
1 parent 976cc3b commit f541cb2
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 14 deletions.
2 changes: 0 additions & 2 deletions app/templates/column-review.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ <h2>{{ table_metadata.name }} - Column Review</h2>
<th>Data Type</th>
<th>Allow Missing</th>
<th>Allow Duplicate</th>
<th>TableID</th>
</tr>
</thead>
<tbody>
Expand All @@ -36,7 +35,6 @@ <h2>{{ table_metadata.name }} - Column Review</h2>
<td style="overflow: hidden;">{{ form.data_type }}</td>
<td>{{ form.allow_missing_value }}</td>
<td>{{ form.allow_duplicate_value }}</td>
<td>{{ table_metadata.name }}</td>
<input type="hidden" name="{{ form.prefix }}-id" value="{{ form.instance.id }}">
</tr>
{% endfor %}
Expand Down
63 changes: 60 additions & 3 deletions app/tests/tests_forms.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"""Tests for forms."""
from django.test import TestCase
from django.test import SimpleTestCase, TestCase

from app.forms import TableMetadataForm
from app.models import TableMetadata
from app.forms import ColumnMetadataForm, TableMetadataForm
from app.models import ColumnDataType, TableMetadata


class TableMetadataFormTests(TestCase):
Expand Down Expand Up @@ -159,3 +159,60 @@ def test_description_not_empty(self):
# Assert
self.assertTrue(form.is_valid())
self.assertEqual(form.errors.get("description"), None)


class ColumnMetadataFormTest(TestCase):
def setUp(self):
# Arrange: Create test instances for models
self.table_metadata = TableMetadata.objects.create(name="TestTableKB")
self.column_data_type = ColumnDataType.objects.create(
display_name="TestStringFormat"
)

def test_form_instance_not_valid(self):
# Arrange: Create an instance of the form without providing any data
form = ColumnMetadataForm()

# Act: Check if the form is not valid
is_valid = form.is_valid()

# Assert: Ensure the form is not valid
self.assertFalse(is_valid)

def test_form_validation_valid_data(self):
# Arrange: Create valid form data
form_data = {
"table_metadata": self.table_metadata.id,
"name": "TestName",
"title": "TestTitle",
"description": "This is the Description",
"data_type": self.column_data_type.id,
"allow_missing_value": True,
"allow_duplicate_value": False,
}

# Act: Create an instance of the form with valid data
form = ColumnMetadataForm(data=form_data)
is_valid = form.is_valid()

# Assert: Ensure the form is valid
self.assertTrue(is_valid)

def test_form_validation_invalid_data(self):
# Arrange: Create invalid form data
invalid_form_data = {
"table_metadata": self.table_metadata.id,
"name": "",
"title": "",
"description": "Description",
"data_type": self.column_data_type.id,
"allow_missing_value": True,
"allow_duplicate_value": False,
}

# Act: Create an instance of the form with invalid data
form = ColumnMetadataForm(data=invalid_form_data)
is_valid = form.is_valid()

# Assert: Ensure the form is not valid
self.assertFalse(is_valid)
6 changes: 2 additions & 4 deletions app/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@
path("", views.home, name="home"),
path("data-import", views.data_import, name="data_import"),
path("file-upload/<int:table_id>", views.file_upload),
path("columndata-review", views.columndata_review, name="columndata-review"),
path(
"columndata-review", views.columndata_review, name="columndata-review"
),
path(
"column-review/<str:table_name>/",
"column-review/<int:table_id>/",
views.column_review,
name="column-review",
),
Expand Down
8 changes: 5 additions & 3 deletions app/views/column_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def columndata_review(request):
)


def column_review(request, table_name):
def column_review(request, table_id):
"""Takes the data from ColumnMetadata and displays as a table.
The table can be edited and the result written back to the db
Expand All @@ -35,7 +35,7 @@ def column_review(request, table_name):
Returns: Must learn what to write here
_type_: _description_
"""
table_metadata = get_object_or_404(TableMetadata, name=table_name)
table_metadata = get_object_or_404(TableMetadata, id=table_id)
columns_metadata = ColumnMetadata.objects.filter(table_metadata=table_metadata)

if request.method == "POST":
Expand All @@ -46,7 +46,9 @@ def column_review(request, table_name):
if all(form.is_valid() for form in forms):
for form in forms:
form.save()
return redirect("home") # Redirect to a success page
return redirect(
"/column-review/" + str(table_id)
) # Redirect to a success page
else:
print([form.errors for form in forms])
else:
Expand Down
3 changes: 1 addition & 2 deletions app/views/file_upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ def handle_post_request_with_file(
HttpResponse when validation fails
"""

try:
validate_csv_and_save_columns(table_id, request.FILES)
except StopUpload as upload_error:
Expand All @@ -63,7 +62,7 @@ def handle_post_request_with_file(
# wait to sec (to show the progress bar)
time.sleep(2)

return redirect("/edit-table-columns/" + str(table_id))
return redirect("/column-review/" + str(table_id))


def render_file_upload_page(
Expand Down

0 comments on commit f541cb2

Please sign in to comment.