Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

597: Refactor PyxformTestCase to use explicit keyword arguments #677

Merged
merged 1 commit into from
Jan 17, 2024
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
3 changes: 2 additions & 1 deletion tests/builder_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ def setUp(self):
self.survey_out_dict, utils.path_to_text_fixture("how_old_are_you.json")
)

def test_create_from_file_object(self):
@staticmethod
def test_create_from_file_object():
path = utils.path_to_text_fixture("yes_or_no_question.xls")
with open(path, "rb") as f:
create_survey_from_xls(f)
Expand Down
431 changes: 230 additions & 201 deletions tests/pyxform_test_case.py

Large diffs are not rendered by default.

15 changes: 7 additions & 8 deletions tests/test_choices_sheet.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ def test_choices_without_labels__for_dynamic_selects__allowed_by_pyxform(self):
| | choices | 1 | |
| | choices | 2 | |
""",
run_odk_validate=False,
xml__xpath_match=[
xpq.body_select1_itemset("a"),
"""
Expand Down Expand Up @@ -120,18 +119,18 @@ def test_choices_extra_columns_output_order_matches_xlsform(self):
"""
self.assertPyxformXform(
md=md,
xml__xpath_contains=[
xml__xpath_match=[
"""
/h:html/h:head/x:model/x:instance[@id='choices']/x:root/x:item[
./x:name[position() = 1 and text() = '1']
and ./x:geometry[position() = 2]
./x:name = ./x:*[position() = 1 and text() = '1']
and ./x:geometry = ./x:*[position() = 2 and text() = '46.5841618 7.0801379 0 0']
]
"""
""",
"""
/h:html/h:head/x:model/x:instance[@id='choices']/x:root/x:item[
./x:name[position() = 1 and text() = '2']
and ./x:geometry[position() = 2]
./x:name = ./x:*[position() = 1 and text() = '2']
and ./x:geometry = ./x:*[position() = 2 and text() = '35.8805082 76.515057 0 0']
]
"""
""",
],
)
2 changes: 0 additions & 2 deletions tests/test_entities_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,6 @@ def test_saveto_in_group__works(self):
| | dataset | label | | |
| | trees | ${size}| | |
""",
errored=False,
)

def test_list_name_alias_to_dataset(self):
Expand Down Expand Up @@ -404,7 +403,6 @@ def test_entities_columns__all_expected(self):
| | dataset | label | update_if | create_if | entity_id |
| | trees | a | id != '' | id = '' | ${a} |
""",
errored=False,
warnings_count=0,
)

Expand Down
1 change: 0 additions & 1 deletion tests/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,5 +177,4 @@ def test_field_name_may_match_form_name(self):
| | date | date | Observation date |
| | text | activity | Describe activity |
""",
errored=False,
)
1 change: 0 additions & 1 deletion tests/test_form_name.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ def test_default_to_data_when_no_name(self):
| | id_string | name |
| | some-id | data |
""",
kwargs={},
autoname=False,
)

Expand Down
2 changes: 0 additions & 2 deletions tests/test_pyxformtestcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ def test_vanilla_survey(self):
"""
self.assertPyxformXform(
ss_structure={"survey": [{"type": "note", "name": "n1", "label": "Note 1"}]},
errored=False,
)


Expand All @@ -63,7 +62,6 @@ def test_formid_is_not_none(self):
| | type | name | label |
| | note | q | Q |
""",
{},
autoname=True,
)

Expand Down
8 changes: 4 additions & 4 deletions tests/test_randomize_itemsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def test_randomized_external_xml_instance(self):
def test_randomized_select_one_bad_param(self):
self.assertPyxformXform(
name="data",
errored="true",
errored=True,
md="""
| survey | | | | |
| | type | name | label | parameters |
Expand All @@ -152,7 +152,7 @@ def test_randomized_select_one_bad_param(self):
def test_randomized_select_one_bad_randomize(self):
self.assertPyxformXform(
name="data",
errored="true",
errored=True,
md="""
| survey | | | | |
| | type | name | label | parameters |
Expand All @@ -171,7 +171,7 @@ def test_randomized_select_one_bad_randomize(self):
def test_randomized_select_one_bad_seed(self):
self.assertPyxformXform(
name="data",
errored="true",
errored=True,
md="""
| survey | | | | |
| | type | name | label | parameters |
Expand All @@ -190,7 +190,7 @@ def test_randomized_select_one_bad_seed(self):
def test_randomized_select_one_seed_without_randomize(self):
self.assertPyxformXform(
name="data",
errored="true",
errored=True,
md="""
| survey | | | | |
| | type | name | label | parameters |
Expand Down
2 changes: 0 additions & 2 deletions tests/test_repeat.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,6 @@ def test_choice_from_previous_repeat_answers_with_choice_filter(self):
'<itemset nodeset="/data/rep[starts-with( ./name , &quot;b&quot;)]">',
'<itemset nodeset="/data/rep[ ./demographics/age &gt; 18]">',
],
run_odk_validate=False,
)

def test_choice_from_previous_repeat_answers_in_child_repeat(self):
Expand Down Expand Up @@ -997,7 +996,6 @@ def test_repeat_count_item_with_same_suffix_as_repeat_is_ok(self):
"""
self.assertPyxformXform(
md=md,
debug=True,
xml__xpath_match=[
# repeat references existing count element directly.
"""
Expand Down
3 changes: 0 additions & 3 deletions tests/test_secondary_instance_translations.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,6 @@ def test_select_with_choice_filter_and_translations_generates_single_translation
name="data",
id_string="some-id",
md=xform_md,
errored=False,
debug=False,
itext__contains=[
'<text id="list-0">',
'<text id="list-1">',
Expand Down Expand Up @@ -171,7 +169,6 @@ def test_select_with_dynamic_option_label__and_choice_filter__and_no_translation
self.assertPyxformXform(
name="data",
md=xform_md,
debug=False,
itext__contains=[
'<text id="choices-0">',
'<value> One - <output value=" /data/txt "/>',
Expand Down
5 changes: 0 additions & 5 deletions tests/test_settings_auto_send_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ def test_settings_auto_send_true(self):
| | auto_send | | |
| | true | | |
""",
debug=False,
xml__contains=['<submission orx:auto-send="true"/>'],
)

Expand All @@ -34,7 +33,6 @@ def test_settings_auto_delete_true(self):
| | auto_delete | | |
| | true | | |
""",
debug=False,
xml__contains=['<submission orx:auto-delete="true"/>'],
)

Expand All @@ -50,7 +48,6 @@ def test_settings_auto_send_delete_false(self):
| | auto_delete | auto_send | |
| | false | false | |
""",
debug=False,
xml__contains=['<submission orx:auto-delete="false" orx:auto-send="false"/>'],
)

Expand All @@ -72,7 +69,6 @@ def test_settings_without_submission_url_does_not_generate_method_attribute(self
| | bRHBG7TQm+Afnx0s5E2bGIT5jB5cj9YaX6BqZSeodpafQjpXEJg6uufxF1Ni3Btv | | |
| | 4wIDAQAB | | |
""",
debug=False,
xml__contains=[
'<submission base64RsaPublicKey="MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwOHPJWD9zc8JPBZj/UtC" orx:auto-send="false"/>'
],
Expand All @@ -90,7 +86,6 @@ def test_settings_with_submission_url_generates_method_attribute(self):
| | submission_url | auto_send | |
| | https://odk.ona.io/random_person/submission | false | |
""",
debug=False,
xml__contains=[
'<submission action="https://odk.ona.io/random_person/submission" method="post" orx:auto-send="false"/>'
],
Expand Down
8 changes: 2 additions & 6 deletions tests/test_sheet_columns.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ def test_missing_name_but_has_alias_of_name(self):
self.assertPyxformXform(
name="invalidcols",
ss_structure={"survey": [{"value": "q1", "type": "text", "label": "label"}]},
errored=False,
)

def test_label_or_hint__must_be_provided(self):
Expand Down Expand Up @@ -101,8 +100,6 @@ def test_column_case(self):
| | integer | age | the age |
| | text | gender | the gender |
""",
errored=False,
debug=False,
)


Expand All @@ -111,7 +108,8 @@ class InvalidChoiceSheetColumnsTests(PyxformTestCase):
Invalid choice sheet column tests
"""

def _simple_choice_ss(self, choice_sheet=None):
@staticmethod
def _simple_choice_ss(choice_sheet=None):
"""
Return simple choices sheet
"""
Expand Down Expand Up @@ -142,7 +140,6 @@ def test_valid_choices_sheet_passes(self):
{"list_name": "l1", "name": "c2", "label": "choice 2"},
]
),
errored=False,
)

def test_invalid_choices_sheet_fails(self):
Expand Down Expand Up @@ -175,7 +172,6 @@ def test_missing_list_name(self):
{"bad_column": "l1", "name": "l1c1", "label": "choice 2"},
]
),
debug=False,
errored=True,
# some basic keywords that should be in the error:
error__contains=["choices", "name", "list_name"],
Expand Down
1 change: 0 additions & 1 deletion tests/test_table_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,4 @@ def test_table_list(self):
name="table-list-appearance-mod",
md=MD,
xml__contains=[XML_CONTAINS],
debug=False,
)
1 change: 0 additions & 1 deletion tests/test_translations.py
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,6 @@ def test_translation_detection__survey_columns_present_with_media(self):
"""
self.assertPyxformXform(
md=md,
debug=True,
xml__xpath_match=[
xpq.body_select1_itemset("f"),
xpq.body_label_inline("select1", "f", "f"),
Expand Down
1 change: 0 additions & 1 deletion tests/test_typed_calculates.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,5 @@ def test_calculate_without_calculation_with_dynamic_default(self):
| | type | name | label | calculation | default |
| | calculate | a | | | random() |
""",
errored=False,
instance__contains=["<a/>"],
)
3 changes: 0 additions & 3 deletions tests/test_unicode_rtl.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ def test_unicode_snowman(self):
| | type | name | label |
| | text | snowman | ☃ |
""",
errored=False,
xml__contains=["<label>☃</label>"],
)

Expand Down Expand Up @@ -49,8 +48,6 @@ def test_smart_quotes(self):
],
"settings": [{"version": "q(‘-’)p"}],
},
errored=False,
validate=False,
name="quoth",
xml__contains=[
"'single-quoted",
Expand Down
5 changes: 0 additions & 5 deletions tests/test_upload_question.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ def test_image_question(self):
| | type | name | label |
| | image | photo | Take a photo: |
""",
errored=False,
xml__contains=[
'<bind nodeset="/data/photo" type="binary"/>',
'<upload mediatype="image/*" ref="/data/photo">',
Expand All @@ -30,7 +29,6 @@ def test_audio_question(self):
| | type | name | label |
| | audio | recording1 | Record a sound: |
""",
errored=False,
xml__contains=[
'<bind nodeset="/data/recording1" type="binary"/>',
'<upload mediatype="audio/*" ref="/data/recording1">',
Expand All @@ -47,7 +45,6 @@ def test_file_question(self):
| | type | name | label |
| | file | file1 | Upload a file: |
""",
errored=False,
xml__contains=[
'<bind nodeset="/data/file1" type="binary"/>',
'<upload mediatype="application/*" ref="/data/file1">',
Expand All @@ -64,7 +61,6 @@ def test_file_question_restrict_filetype(self):
| | type | name | label | body::accept |
| | file | upload_a_pdf | Upload a PDF: | application/pdf |
""",
errored=False,
xml__contains=['<upload accept="application/pdf"'],
)

Expand All @@ -78,6 +74,5 @@ def test_image_question_custom_col_calc(self):
| | text | text1 | Text | |
| | image | image1 | Take a Photo: | watermark=${watermark_phrase} |
""", # noqa
errored=False,
xml__contains=["watermark= /data/watermark_phrase "],
)
2 changes: 1 addition & 1 deletion tests/test_whitespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def test_values_without_whitespaces_are_processed_successfully(self):
"""
self.assertPyxformXform(
md=md,
xml__xpath_contains=[
xml__xpath_match=[
"""
/h:html/h:head/x:model/x:submission[
@action='https://odk.ona.io/random_person/submission'
Expand Down
6 changes: 1 addition & 5 deletions tests/test_xform2json.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,7 @@ def test_convert_toJSON_multi_language(self):
| | fruits | 3 | Apple | Pomme |
"""

survey = self.md_to_pyxform_survey(
md_raw=md,
kwargs={"id_string": "id", "name": "multi-language", "title": "some-title"},
autoname=False,
)
survey = self.md_to_pyxform_survey(md_raw=md)
expected = survey.to_xml()
generated_json = survey.to_json()

Expand Down
Loading
Loading