def get_flow(self, filename, substitutions=None, flow_type=Flow.FLOW): flow = Flow.create(self.org, self.admin, name=filename, flow_type=flow_type) self.update_flow(flow, filename, substitutions) return flow
def create_flow(self): start = int(time.time()*1000) % 1000000 definition = dict(action_sets=[dict(uuid=uuid(start + 1), x=1, y=1, destination=uuid(start + 5), actions=[dict(type='reply', msg='What is your favorite color?')]), dict(uuid=uuid(start + 2), x=2, y=2, destination=None, actions=[dict(type='reply', msg='I love orange too!')]), dict(uuid=uuid(start + 3), x=3, y=3, destination=None, actions=[dict(type='reply', msg='Blue is sad. :(')]), dict(uuid=uuid(start + 4), x=4, y=4, destination=None, actions=[dict(type='reply', msg='That is a funny color.')]) ], rule_sets=[dict(uuid=uuid(start + 5), x=5, y=5, label='color', response_type='C', rules=[ dict(uuid=uuid(start + 12), destination=uuid(start + 2), test=dict(type='contains', test='orange'), category="Orange"), dict(uuid=uuid(start + 13), destination=uuid(start + 3), test=dict(type='contains', test='blue'), category="Blue"), dict(uuid=uuid(start + 14), destination=uuid(start + 4), test=dict(type='true'), category="Other"), dict(uuid=uuid(start + 15), test=dict(type='true'), category="Nothing")]) # test case with no destination ], entry=uuid(start + 1)) flow = Flow.create(self.org, self.admin, "Color Flow") flow.update(definition) return flow
def create_flow(self): start = int(time.time() * 1000) % 1000000 definition = dict( action_sets=[ dict(uuid=uuid(start + 1), x=1, y=1, destination=uuid(start + 5), actions=[ dict(type='reply', msg='What is your favorite color?') ]), dict(uuid=uuid(start + 2), x=2, y=2, destination=None, actions=[dict(type='reply', msg='I love orange too!')]), dict(uuid=uuid(start + 3), x=3, y=3, destination=None, actions=[dict(type='reply', msg='Blue is sad. :(')]), dict( uuid=uuid(start + 4), x=4, y=4, destination=None, actions=[dict(type='reply', msg='That is a funny color.')]) ], rule_sets=[ dict(uuid=uuid(start + 5), x=5, y=5, label='color', response_type='C', rules=[ dict(uuid=uuid(start + 12), destination=uuid(start + 2), test=dict(type='contains', test='orange'), category="Orange"), dict(uuid=uuid(start + 13), destination=uuid(start + 3), test=dict(type='contains', test='blue'), category="Blue"), dict(uuid=uuid(start + 14), destination=uuid(start + 4), test=dict(type='true'), category="Other"), dict(uuid=uuid(start + 15), test=dict(type='true'), category="Nothing") ]) # test case with no destination ], entry=uuid(start + 1)) flow = Flow.create(self.org, self.admin, "Color Flow") flow.update(definition) return flow
def create_flow(self, uuid_start=None, **kwargs): if 'org' not in kwargs: kwargs['org'] = self.org if 'user' not in kwargs: kwargs['user'] = self.user if 'name' not in kwargs: kwargs['name'] = "Color Flow" flow = Flow.create(**kwargs) flow.update(self.create_flow_definition(uuid_start)) return Flow.objects.get(pk=flow.pk)
def setUp(self): User.objects.create_user(username="******", password="******", email="*****@*****.**") user = User.objects.get(username="******") weni = Org.objects.create(name="Weni", timezone="America/Maceio", created_by=user, modified_by=user) Flow.create(name="Test Temba", user=user, org=weni, is_active=False) Flow.create(name="Test flow name", user=user, org=weni) Flow.create(name="Test Weni flow name", user=user, org=weni) Classifier.objects.create(org=weni, config="", created_by=user, modified_by=user, is_active=False) Classifier.objects.create(org=weni, config="", created_by=user, modified_by=user) Classifier.objects.create(org=weni, config="", created_by=user, modified_by=user) super().setUp() self.stub = grpc_gen.statistic_pb2_grpc.OrgStatisticControllerStub( test_grpc.Channel())
def test_icon(self): from temba.campaigns.models import Campaign from temba.triggers.models import Trigger from temba.flows.models import Flow from temba.utils.templatetags.temba import icon campaign = Campaign.create(self.org, self.admin, 'Test Campaign', self.create_group('Test group', [])) flow = Flow.create(self.org, self.admin, 'Test Flow') trigger = Trigger.objects.create(org=self.org, keyword='trigger', flow=flow, created_by=self.admin, modified_by=self.admin) self.assertEquals('icon-instant', icon(campaign)) self.assertEquals('icon-feed', icon(trigger)) self.assertEquals('icon-tree', icon(flow)) self.assertEquals("", icon(None))
def create_flow(self, definition=None, **kwargs): if "org" not in kwargs: kwargs["org"] = self.org if "user" not in kwargs: kwargs["user"] = self.user if "name" not in kwargs: kwargs["name"] = "Color Flow" flow = Flow.create(**kwargs) if not definition: # if definition isn't provided, generate simple single message flow node_uuid = str(uuid4()) definition = { "version": "10", "flow_type": "F", "base_language": "eng", "entry": node_uuid, "action_sets": [{ "uuid": node_uuid, "x": 0, "y": 0, "actions": [{ "msg": { "eng": "Hey everybody!" }, "media": {}, "send_all": False, "type": "reply" }], "destination": None, }], "rule_sets": [], } flow.version_number = definition["version"] flow.save() json_flow = FlowRevision.migrate_definition( definition, flow, to_version=Flow.FINAL_LEGACY_VERSION) flow.update(json_flow) return flow
def create_flow(self, name="Test Flow", *, flow_type=Flow.TYPE_MESSAGE, nodes=None, is_system=False, org=None): org = org or self.org flow = Flow.create(org, self.admin, name, flow_type=flow_type, is_system=is_system) if not nodes: nodes = [{ "uuid": "f3d5ccd0-fee0-4955-bcb7-21613f049eae", "actions": [{ "uuid": "f661e3f0-5148-4397-92ef-925629ad444d", "type": "send_msg", "text": "Hey everybody!" }], "exits": [{ "uuid": "72a3f1da-bde1-4549-a986-d35809807be8" }], }] definition = { "uuid": str(uuid4()), "name": name, "type": Flow.GOFLOW_TYPES[flow_type], "revision": 1, "spec_version": "13.1.0", "expire_after_minutes": Flow.DEFAULT_EXPIRES_AFTER, "language": "eng", "nodes": nodes, } flow.version_number = definition["spec_version"] flow.save() json_flow = Flow.migrate_definition(definition, flow) flow.save_revision(self.admin, json_flow) return flow
def create_flow(self, definition=None, **kwargs): if 'org' not in kwargs: kwargs['org'] = self.org if 'user' not in kwargs: kwargs['user'] = self.user if 'name' not in kwargs: kwargs['name'] = "Color Flow" flow = Flow.create(**kwargs) if not definition: # if definition isn't provided, generate simple single message flow node_uuid = str(uuid4()) definition = { "version": 10, "flow_type": "F", "base_language": "eng", "entry": node_uuid, "action_sets": [{ "uuid": node_uuid, "x": 0, "y": 0, "actions": [{ "msg": { "eng": "Hey everybody!" }, "media": {}, "send_all": False, "type": "reply" }], "destination": None }], "rule_sets": [], } flow.update(definition) return flow
def create_flow(self, definition=None, **kwargs): if "org" not in kwargs: kwargs["org"] = self.org if "user" not in kwargs: kwargs["user"] = self.user if "name" not in kwargs: kwargs["name"] = "Color Flow" flow = Flow.create(**kwargs) if not definition: # if definition isn't provided, generate simple single message flow node_uuid = str(uuid4()) definition = { "version": 10, "flow_type": "F", "base_language": "eng", "entry": node_uuid, "action_sets": [ { "uuid": node_uuid, "x": 0, "y": 0, "actions": [ {"msg": {"eng": "Hey everybody!"}, "media": {}, "send_all": False, "type": "reply"} ], "destination": None, } ], "rule_sets": [], } flow.version_number = definition["version"] flow.save() json_flow = FlowRevision.migrate_definition(definition, flow) flow.update(json_flow) return flow
def setUp(self): User.objects.create_user(username="******", password="******", email="*****@*****.**") user = User.objects.first() temba = Org.objects.create(name="Temba", timezone="America/Maceio", created_by=user, modified_by=user) weni = Org.objects.create(name="Weni", timezone="America/Maceio", created_by=user, modified_by=user) Flow.create(name="Test Temba", user=user, org=temba) Flow.create(name="Test flow name", user=user, org=weni) Flow.create(name="Test Weni flow name", user=user, org=weni) super().setUp() self.stub = flow_pb2_grpc.FlowControllerStub(self.channel)
def get_flow(self, filename, substitutions=None): flow = Flow.create(self.org, self.admin, name=filename) self.update_flow(flow, filename, substitutions) return flow
def create_flow(self, uuid_start=None): flow = Flow.create(self.org, self.admin, "Color Flow") flow.update(self.create_flow_definition(uuid_start)) return Flow.objects.get(pk=flow.pk)