aboutsummaryrefslogtreecommitdiff
path: root/tests/models/innovate/test_question.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/models/innovate/test_question.py')
-rw-r--r--tests/models/innovate/test_question.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/models/innovate/test_question.py b/tests/models/innovate/test_question.py
new file mode 100644
index 0000000..330f919
--- /dev/null
+++ b/tests/models/innovate/test_question.py
@@ -0,0 +1,85 @@
+from generalresearch.models import Source
+from generalresearch.models.innovate.question import (
+ InnovateQuestion,
+ InnovateQuestionType,
+ InnovateQuestionOption,
+)
+from generalresearch.models.thl.profiling.upk_question import (
+ UpkQuestionSelectorTE,
+ UpkQuestion,
+ UpkQuestionSelectorMC,
+ UpkQuestionType,
+ UpkQuestionChoice,
+)
+
+
+class TestInnovateQuestion:
+
+ def test_text_entry(self):
+
+ q = InnovateQuestion(
+ question_id="3",
+ country_iso="us",
+ language_iso="eng",
+ question_key="ZIPCODES",
+ question_text="postal code",
+ question_type=InnovateQuestionType.TEXT_ENTRY,
+ tags=None,
+ options=None,
+ is_live=True,
+ category_id=None,
+ )
+ assert Source.INNOVATE == q.source
+ assert "i:zipcodes" == q.external_id
+ assert "zipcodes" == q.internal_id
+ assert ("zipcodes", "us", "eng") == q._key
+
+ upk = q.to_upk_question()
+ expected_upk = UpkQuestion(
+ ext_question_id="i:zipcodes",
+ type=UpkQuestionType.TEXT_ENTRY,
+ country_iso="us",
+ language_iso="eng",
+ text="postal code",
+ selector=UpkQuestionSelectorTE.SINGLE_LINE,
+ choices=None,
+ )
+ assert expected_upk == upk
+
+ def test_mc(self):
+
+ text = "Have you purchased or received any of the following in past 18 months?"
+ q = InnovateQuestion(
+ question_key="dynamic_profiling-_1_14715",
+ country_iso="us",
+ language_iso="eng",
+ question_id="14715",
+ question_text=text,
+ question_type=InnovateQuestionType.MULTI_SELECT,
+ tags="Dynamic Profiling- 1",
+ options=[
+ InnovateQuestionOption(id="1", text="aaa", order=0),
+ InnovateQuestionOption(id="2", text="bbb", order=1),
+ ],
+ is_live=True,
+ category_id=None,
+ )
+ assert "i:dynamic_profiling-_1_14715" == q.external_id
+ assert "dynamic_profiling-_1_14715" == q.internal_id
+ assert ("dynamic_profiling-_1_14715", "us", "eng") == q._key
+ assert 2 == q.num_options
+
+ upk = q.to_upk_question()
+ expected_upk = UpkQuestion(
+ ext_question_id="i:dynamic_profiling-_1_14715",
+ type=UpkQuestionType.MULTIPLE_CHOICE,
+ country_iso="us",
+ language_iso="eng",
+ text=text,
+ selector=UpkQuestionSelectorMC.MULTIPLE_ANSWER,
+ choices=[
+ UpkQuestionChoice(id="1", text="aaa", order=0),
+ UpkQuestionChoice(id="2", text="bbb", order=1),
+ ],
+ )
+ assert expected_upk == upk