def test_should_define_entity_type(self): entity_type = ["HealthFacility", "Clinic"] entity_types = get_all_entity_types(self.dbm) self.assertNotIn(entity_type, entity_types) define_type(self.dbm, entity_type) types = get_all_entity_types(self.dbm) self.assertIn(entity_type, types) self.assertIn([entity_type[0]], types)
def setUp(self): self.dbm = get_db_manager(database='mangrove-test') define_type(self.dbm, ["Reporter"]) reporter = Entity(self.dbm, entity_type=["Reporter"], location=["Pune", "India"], short_code="REPX") reporter.save() reporter = Entity(self.dbm, entity_type=["Reporter"], location=["Pune", "India"], short_code="REP1") reporter.save() reporter = Entity(self.dbm, entity_type=["Reporter"], location=["Pune", "India"], short_code="REP2") reporter.save()
def _create_entities(self): self.entity_type = ['clinic'] define_type(self.dbm, self.entity_type) define_type(self.dbm, ['reporter']) self.name_type = DataDictType(self.dbm, name='Name', slug='name', primitive_type='string') self.telephone_number_type = DataDictType(self.dbm, name='telephone_number', slug='telephone_number', primitive_type='string') rep1 = create_entity(self.dbm, ['reporter'], 'rep1') rep1.add_data(data=[(MOBILE_NUMBER_FIELD, '1234', self.telephone_number_type), (NAME_FIELD, "Test_reporter", self.name_type)], submission=dict(submission_id="2"))
def setUp(self): self.dbm = get_db_manager(database='mangrove-test') initializer.run(self.dbm) define_type(self.dbm, ["dog"]) self.entity_type = ["healthfacility", "clinic"] define_type(self.dbm, self.entity_type) self.name_type = DataDictType(self.dbm, name='Name', slug='name', primitive_type='string') self.telephone_number_type = DataDictType(self.dbm, name='telephone_number', slug='telephone_number', primitive_type='string') self.entity_id_type = DataDictType(self.dbm, name='Entity Id Type', slug='entity_id', primitive_type='string') self.stock_type = DataDictType(self.dbm, name='Stock Type', slug='stock', primitive_type='integer') self.color_type = DataDictType(self.dbm, name='Color Type', slug='color', primitive_type='string') self.name_type.save() self.telephone_number_type.save() self.stock_type.save() self.color_type.save() self.entity = create_entity(self.dbm, entity_type=self.entity_type, location=["India", "Pune"], aggregation_paths=None, short_code="cli1", ) self.data_record_id = self.entity.add_data(data=[("Name", "Ruby", self.name_type)], submission=dict(submission_id="1")) self.reporter = create_entity(self.dbm, entity_type=["reporter"], location=["India", "Pune"], aggregation_paths=None, short_code="rep1", ) self.reporter.add_data(data=[(MOBILE_NUMBER_FIELD, '1234', self.telephone_number_type), (NAME_FIELD, "Test_reporter", self.name_type)], submission=dict(submission_id="2")) question1 = TextField(name="entity_question", code="EID", label="What is associated entity", language="eng", entity_question_flag=True, ddtype=self.entity_id_type) question2 = TextField(name="Name", code="NAME", label="Clinic Name", defaultValue="some default value", language="eng", length=TextConstraint(4, 15), ddtype=self.name_type) question3 = IntegerField(name="Arv stock", code="ARV", label="ARV Stock", range=NumericConstraint(min=15, max=120), ddtype=self.stock_type) question4 = SelectField(name="Color", code="COL", label="Color", options=[("RED", 1), ("YELLOW", 2)], ddtype=self.color_type) self.form_model = FormModel(self.dbm, entity_type=self.entity_type, name="aids", label="Aids form_model", form_code="clinic", type='survey', fields=[question1, question2, question3]) self.form_model.add_field(question4) self.form_model__id = self.form_model.save() self.submission_handler = SubmissionHandler(self.dbm) self.sms_player = SMSPlayer(self.dbm, self.submission_handler, LocationTree())
def create_type(request): success = False form = EntityTypeForm(request.POST) if form.is_valid(): entity_name = form.cleaned_data["entity_type_regex"] entity_name = [entity_name.lower()] try: manager = get_database_manager(request) define_type(manager, entity_name) message = "Entity definition successful" success = True except EntityTypeAlreadyDefined: message = "This subject has already been added." else: message = form.fields['entity_type_regex'].error_messages['invalid'] return HttpResponse(json.dumps({'success': success, 'message': message}))
def _create_form_model(self): self.entity_type = ["HealthFacility", "Clinic"] define_type(self.dbm, ["HealthFacility", "Clinic"]) self.default_ddtype = DataDictType(self.dbm, name='Default String Datadict Type', slug='string_default', primitive_type='string') self.default_ddtype.save() question1 = TextField(name="entity_question", code="ID", label="What is associated entity", language="eng", entity_question_flag=True, ddtype=self.default_ddtype) question2 = TextField(name="question1_Name", code="Q1", label="What is your name", defaultValue="some default value", language="eng", length=TextConstraint(5, 10), ddtype=self.default_ddtype) question3 = IntegerField(name="Father's age", code="Q2", label="What is your Father's Age", range=NumericConstraint(min=15, max=120), ddtype=self.default_ddtype) question4 = SelectField(name="Color", code="Q3", label="What is your favourite color", options=[("RED", 1), ("YELLOW", 2)], ddtype=self.default_ddtype) self.form_model = FormModel(self.dbm, entity_type=self.entity_type, name="aids", label="Aids form_model", form_code="1", type='survey', fields=[ question1, question2, question3, question4]) self.form_model__id = self.form_model.save()
def _create_form_model(self): self.entity_type = ["HealthFacility", "Clinic"] define_type(self.dbm, ["HealthFacility", "Clinic"]) self.default_ddtype = DataDictType(self.dbm, name='Default String Datadict Type', slug='string_default', primitive_type='string') self.default_ddtype.save() question1 = TextField(name="entity_question", code="ID", label="What is associated entity", language="eng", entity_question_flag=True, ddtype=self.default_ddtype) question2 = TextField(name="question1_Name", code="Q1", label="What is your name", defaultValue="some default value", language="eng", length=TextConstraint(5, 10), ddtype=self.default_ddtype) question3 = IntegerField(name="Father's age", code="Q2", label="What is your Father's Age", range=NumericConstraint(min=15, max=120), ddtype=self.default_ddtype) question4 = SelectField(name="Color", code="Q3", label="What is your favourite color", options=[("RED", 1), ("YELLOW", 2)], ddtype=self.default_ddtype) self.form_model = FormModel( self.dbm, entity_type=self.entity_type, name="aids", label="Aids form_model", form_code="1", type='survey', fields=[question1, question2, question3, question4]) self.form_model__id = self.form_model.save()
def setUp(self): self.manager = get_db_manager('http://localhost:5984/', 'mangrove-test') define_type(self.manager, ["reporter"]) self.phone_number_type = DataDictType(self.manager, name='Telephone Number', slug='telephone_number', primitive_type='string') self.first_name_type = DataDictType(self.manager, name='First Name', slug='first_name', primitive_type='string') #Register Reporter self.register(self.manager, entity_type=["reporter"], data=[(MOBILE_NUMBER_FIELD, "1234567890", self.phone_number_type), (NAME_FIELD, "A", self.first_name_type)], location=[], source="sms", short_code="REP1") self.register(self.manager, entity_type=["reporter"], data=[(MOBILE_NUMBER_FIELD, "8888567890", self.phone_number_type), (NAME_FIELD, "B", self.first_name_type)], location=[], source="sms", short_code="rep5") self.register(self.manager, entity_type=["reporter"], data=[(MOBILE_NUMBER_FIELD, "1234567890", self.phone_number_type), (NAME_FIELD, "B", self.first_name_type)], location=[], source="sms", short_code="REP2")
def test_should_define_single_entity(self): define_type(self.dbm, ["Clinic"]) entity_types = get_all_entity_types(self.dbm) self.assertListEqual(entity_types, [["Clinic"]])
def test_should_disallow_redefining_the_same_entity_with_different_case( self): define_type(self.dbm, ["HealthFacility", "Clinic"]) with self.assertRaises(EntityTypeAlreadyDefined): define_type(self.dbm, ["healTHfaciLIty", "clinic"])
def test_should_disallow_redefining_the_same_entity(self): define_type(self.dbm, ["HealthFacility", "Clinic"]) with self.assertRaises(EntityTypeAlreadyDefined): define_type(self.dbm, ["HealthFacility", "Clinic"])
def test_should_throw_assertionError_if_entity_type_is_not_list(self): with self.assertRaises(AssertionError): entity_type = "HealthFacility" define_type(self.dbm, entity_type)
def test_should_disallow_redefining_the_same_entity_with_different_case(self): define_type(self.dbm, ["HealthFacility", "Clinic"]) with self.assertRaises(EntityTypeAlreadyDefined): define_type(self.dbm, ["healTHfaciLIty", "clinic"])
def setUp(self): self.dbm = get_db_manager(database='mangrove-test') initializer.run(self.dbm) define_type(self.dbm, ["dog"]) self.entity_type = ["healthfacility", "clinic"] define_type(self.dbm, self.entity_type) self.name_type = DataDictType(self.dbm, name='Name', slug='name', primitive_type='string') self.telephone_number_type = DataDictType(self.dbm, name='telephone_number', slug='telephone_number', primitive_type='string') self.entity_id_type = DataDictType(self.dbm, name='Entity Id Type', slug='entity_id', primitive_type='string') self.stock_type = DataDictType(self.dbm, name='Stock Type', slug='stock', primitive_type='integer') self.color_type = DataDictType(self.dbm, name='Color Type', slug='color', primitive_type='string') self.name_type.save() self.telephone_number_type.save() self.stock_type.save() self.color_type.save() self.entity = create_entity( self.dbm, entity_type=self.entity_type, location=["India", "Pune"], aggregation_paths=None, short_code="cli1", ) self.data_record_id = self.entity.add_data( data=[("Name", "Ruby", self.name_type)], submission=dict(submission_id="1")) self.reporter = create_entity( self.dbm, entity_type=["reporter"], location=["India", "Pune"], aggregation_paths=None, short_code="rep1", ) self.reporter.add_data(data=[ (MOBILE_NUMBER_FIELD, '1234', self.telephone_number_type), (NAME_FIELD, "Test_reporter", self.name_type) ], submission=dict(submission_id="2")) question1 = TextField(name="entity_question", code="EID", label="What is associated entity", language="eng", entity_question_flag=True, ddtype=self.entity_id_type) question2 = TextField(name="Name", code="NAME", label="Clinic Name", defaultValue="some default value", language="eng", length=TextConstraint(4, 15), ddtype=self.name_type) question3 = IntegerField(name="Arv stock", code="ARV", label="ARV Stock", range=NumericConstraint(min=15, max=120), ddtype=self.stock_type) question4 = SelectField(name="Color", code="COL", label="Color", options=[("RED", 1), ("YELLOW", 2)], ddtype=self.color_type) self.form_model = FormModel(self.dbm, entity_type=self.entity_type, name="aids", label="Aids form_model", form_code="clinic", type='survey', fields=[question1, question2, question3]) self.form_model.add_field(question4) self.form_model__id = self.form_model.save() self.submission_handler = SubmissionHandler(self.dbm) self.sms_player = SMSPlayer(self.dbm, self.submission_handler, LocationTree())
def create_entity_types(manager, entity_types): for entity_type in entity_types: try: define_type(manager, entity_type) except EntityTypeAlreadyDefined: pass