1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
|