8000 Reverting all changes; parsing user input for filter_friendly_name an… · yikaraman/twilio-python@79daa8d · GitHub
[go: up one dir, main page]

Skip to content

Commit 79daa8d

Browse files
committed
Reverting all changes; parsing user input for filter_friendly_name and changing to friendly_name
1 parent ee487ba commit 79daa8d

File tree

4 files changed

+16
-41
lines changed

4 files changed

+16
-41
lines changed

tests/task_router/test_workflow_config.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -78,25 +78,25 @@ def test_from_json2(self):
7878
self.assertEqual(2, len(config.task_routing.filters))
7979
self.assertEqual(4, len(config.task_routing.default_filter))
8080

81-
def test_from_json_filter_friendly_name(self):
82-
81+
def test_from_json_with_filter_friendly_name(self):
8382
data = {
8483
'task_routing':
8584
{
8685
'filters': [
8786
{
8887
'expression': 'type == "sales"',
89-
'friendly_name': 'Sales',
88+
'filter_friendly_name': 'Sales',
9089
'targets': [
9190
{
91+
9292
'queue': 'WQec62de0e1148b8477f2e24579779c8b1',
9393
'expression': 'task.language IN worker.languages'
9494
}
9595
]
9696
},
9797
{
9898
'expression': 'type == "marketing"',
99-
'friendly_name': 'Marketing',
99+
'filter_friendly_name': 'Marketing',
100100
'targets': [
101101
{
102102
'queue': 'WQ2acd4c1a41ffadce5d1bac9e1ce2fa9f',
@@ -106,7 +106,7 @@ def test_from_json_filter_friendly_name(self):
106106
},
107107
{
108108
'expression': 'type == "support"',
109-
'friendly_name': 'Support',
109+
'filter_friendly_name': 'Support',
110110
'targets': [
111111
{
112112
'queue': 'WQe5eb317eb23500ade45087ea6522896c',
@@ -121,16 +121,12 @@ def test_from_json_filter_friendly_name(self):
121121
}
122122
}
123123
}
124-
124+
# marshal object
125125
config = WorkflowConfig.json2obj(json.dumps(data))
126126
self.assertEqual(3, len(config.task_routing.filters))
127127
self.assertEqual(1, len(config.task_routing.default_filter))
128-
self.assertEqual("Sales", config.task_routing.filters[0].friendly_name)
129-
self.assertEqual("Marketing", config.task_routing.filters[1].friendly_name)
130-
self.assertEqual("Support", config.task_routing.filters[2].friendly_name)
131128

132-
# convert back to json; should marshal as friendly_name
133-
config_json = config.to_json()
129+
# check that the configuration was marshaled to "friendly_name" and not "filter_friendly_name"
134130
expected_config_data = {
135131
"task_routing":
136132
{
@@ -174,11 +170,10 @@ def test_from_json_filter_friendly_name(self):
174170
}
175171

176172
expected_config_json = json.dumps(expected_config_data,
177-
default=lambda o: o.__dict__,
178173
sort_keys=True,
179174
indent=4)
180-
181-
self.assertEqual(config_json, expected_config_json)
175+
# check that marshaling back stays as "friendly_name"
176+
self.assertEqual(config.to_json(), expected_config_json)
182177

183178
def is_json(self, myjson):
184179
try:
Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .workflow_rule import WorkflowRule
2+
from .workflow_ruletarget import WorkflowRuleTarget
23
import json
34

45

@@ -10,31 +11,8 @@ class TaskRouterConfig:
1011
"""
1112

1213
def __init__(self, rules, default_target):
13-
14+
self.filters = rules
1415
self.default_filter = default_target
15-
workflow_rules = []
16-
17-
for rule in rules:
18-
if isinstance(rule, WorkflowRule):
19-
workflow_rules.append(rule)
20-
else:
21-
try:
22-
name = rule['friendly_name']
23-
except KeyError:
24-
name = rule['filter_friendly_name']
25-
workflow_rules.append(
26-
WorkflowRule(rule['expression'], rule['targets'], name))
27-
self.filters = workflow_rules
28-
29-
def to_json(self):
30-
31-
return json.dumps(self,
32-
default=lambda o: o.__dict__,
33-
sort_keys=True,
34-
indent=4)
35-
36-
@staticmethod
37-
def json2obj(data):
3816

39-
m = json.loads(data)
40-
return TaskRouterConfig(m['filters'], m['default_filter'])
17+
def __repr__(self):
18+
return self.__dict__

twilio/task_router/workflow_config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ def to_json(self):
2121

2222
@staticmethod
2323
def json2obj(data):
24+
# replace instances of "filter_friendly_name" with "friendly_name"
25+
data = data.replace("filter_friendly_name", "friendly_name")
26+
2427
m = json.loads(data)
2528
return WorkflowConfig(m['task_routing']['filters'],
2629
m['task_routing']['default_filter'])

twilio/task_router/workflow_rule.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from .workflow_ruletarget import WorkflowRuleTarget
2-
import json
32

43

54
class WorkflowRule:

0 commit comments

Comments
 (0)
0