From 8ca82c5cb075b1629f0bc56665badf4447b23f3b Mon Sep 17 00:00:00 2001 From: Jay Guo Date: Fri, 8 Nov 2024 19:40:41 -0500 Subject: [PATCH] Add test --- .../opengov_custom_footer/plugin/__init__.py | 2 +- .../opendata_theme/tests/base/test_helpers.py | 48 ++++++++++++++++--- .../test_custom_footer.py | 5 ++ 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/ckanext/opendata_theme/opengov_custom_footer/plugin/__init__.py b/ckanext/opendata_theme/opengov_custom_footer/plugin/__init__.py index b9634671..40f21e88 100644 --- a/ckanext/opendata_theme/opengov_custom_footer/plugin/__init__.py +++ b/ckanext/opendata_theme/opengov_custom_footer/plugin/__init__.py @@ -77,7 +77,7 @@ def custom_footer_validator(value): if layout_type not in ['default', 'custom']: raise toolkit.Invalid('Invalid footer layout') - # content is sanitized by controller soo only taught validation required + # content is sanitized by controller so only simple validation required content_0 = value.get('content_0') if helper.check_characters(content_0): raise toolkit.Invalid('Invalid characters in Column 1') diff --git a/ckanext/opendata_theme/tests/base/test_helpers.py b/ckanext/opendata_theme/tests/base/test_helpers.py index ece1aed1..a0812dca 100644 --- a/ckanext/opendata_theme/tests/base/test_helpers.py +++ b/ckanext/opendata_theme/tests/base/test_helpers.py @@ -1,20 +1,56 @@ import pytest -from ckanext.opendata_theme.base.helpers import version_builder +from ckanext.opendata_theme.base.helpers import ( + abbreviate_name, is_data_dict_active, + get_group_alias, get_organization_alias, + version_builder, check_characters, + sanityze_all_html +) from packaging.version import InvalidVersion +def test_abbreviate_name(): + assert abbreviate_name('John Smith') == 'JS' + assert abbreviate_name('test') == 'T' + + +def test_is_data_dict_active(): + assert is_data_dict_active([{'info': {'label': 'test'}}]) + assert is_data_dict_active([{'info': {'notes': 'test'}}]) + assert is_data_dict_active([{'info': {'label': 'test', 'notes': 'test'}}]) + assert not is_data_dict_active([{'info': {}}]) + assert not is_data_dict_active([{}]) + assert not is_data_dict_active([]) + + +def test_get_group_alias(): + assert get_group_alias() == 'Group' + + +def test_get_organization_alias(): + assert get_organization_alias() == 'Organization' + + def test_version_builder_positive(): assert version_builder('2.7') < version_builder('2.9') assert version_builder('2.7.0') < version_builder('2.7.3') assert version_builder('2.7.3') < version_builder('2.7.12') - assert version_builder('2.7.3') < version_builder('2.9.0') - assert version_builder('2.7.3') < version_builder('2.9.7') - assert version_builder('2.7.12') < version_builder('2.9.0') - assert version_builder('2.7.12') < version_builder('2.9.7') - assert version_builder('2.7.12') < version_builder('2.10.0') + assert version_builder('2.7.3') < version_builder('2.9.11') + assert version_builder('2.7.12') < version_builder('2.9.11') + assert version_builder('2.9.11') < version_builder('2.10.0') + assert version_builder('2.9.11') < version_builder('2.11.0') def test_version_builder_failed_to_build(): with pytest.raises(InvalidVersion): assert version_builder('1.3.xy123') + + +def test_check_characters(): + assert check_characters('') is False + + +def test_sanityze_all_html(): + assert sanityze_all_html('') == '<script>alert("test")</script>' + assert sanityze_all_html('test') == '<a href="test">test</a>' + assert sanityze_all_html('test') == 'test' diff --git a/ckanext/opendata_theme/tests/opengov_custom_footer/test_custom_footer.py b/ckanext/opendata_theme/tests/opengov_custom_footer/test_custom_footer.py index 082d97c4..2e3396c9 100644 --- a/ckanext/opendata_theme/tests/opengov_custom_footer/test_custom_footer.py +++ b/ckanext/opendata_theme/tests/opengov_custom_footer/test_custom_footer.py @@ -1,5 +1,6 @@ import pytest +from ckanext.opendata_theme.opengov_custom_footer.plugin import get_footer_script_snippet from ckanext.opendata_theme.tests.helpers import do_get, do_post CUSTOM_FOOTER_URL = "/ckan-admin/custom_footer" @@ -100,3 +101,7 @@ def test_reset_custom_footer_form_after_some_footer_modification(app): 'content_2': '' } check_custom_footer_page_html(reset_response, **expected_data) + + +def test_invalid_get_footer_script_snippet(): + assert get_footer_script_snippet() is False