Beispiel #1
0
 def setUp(self):
     self.database = FakeCouchDb()
     self.case_orig_db = CommCareCase.get_db()
     self.form_orig_db = XFormInstance.get_db()
     self.user_orig_db = CommCareUser.get_db()
     CommCareCase.set_db(self.database)
     XFormInstance.set_db(self.database)
     CommCareUser.set_db(self.database)
Beispiel #2
0
    def setUp(self):
        self.fakedb = FakeCouchDb()
        MockIndicators.set_db(self.fakedb)
        MockIndicatorsWithGetters.set_db(self.fakedb)
        MockDoc.set_db(self.fakedb)

        MockIndicatorsSql.set_db(self.fakedb)
        rebuild_table(self.engine, None, MockIndicatorsSql)
        rebuild_table(self.engine, None, MockIndicatorsSqlWithFlatFields)
Beispiel #3
0
 def setUp(self):
     self.couch_db = FakeCouchDb()
     self.batches = [
         list(range(0, 3)),
         list(range(3, 6)),
         list(range(6, 8)),
     ]
     self.all_items = list(itertools.chain(*self.batches))
     self.itr = self.get_iterator()
Beispiel #4
0
    def setUp(self):
        self.db = FormQuestionSchema.get_db()
        self.fakedb = FakeCouchDb()
        FormQuestionSchema.set_db(self.fakedb)

        self.domain = 'test'
        self.app_id = '123'
        self.xmlns = 'this_xmlns'
        self.schema = FormQuestionSchema(domain=self.domain, app_id=self.app_id, xmlns=self.xmlns)
 def setUp(self):
     views = {
         "all_docs/by_doc_type": self._get_view_results(4, chuck_size=2)
     }
     docs = [self._get_row(ident)['doc'] for ident in range(4)]
     self.db = FakeCouchDb(views=views, docs={
         doc['_id']: doc for doc in docs
     })
     Bar.set_db(self.db)
     self.processor_slug = uuid.uuid4().hex
Beispiel #6
0
 def setUp(self):
     self._fake_couch = FakeCouchDb()
     self._fake_couch.dbname = 'test_commcarehq'
     with trap_extra_setup(KafkaUnavailableError):
         self.consumer = KafkaConsumer(
             topics.CASE,
             group_id='test-consumer',
             bootstrap_servers=[settings.KAFKA_URL],
             consumer_timeout_ms=100,
         )
     self.pillow = get_change_feed_pillow_for_db(
         'fake-changefeed-pillow-id', self._fake_couch)
     self.original_process_change = self.pillow.process_change
Beispiel #7
0
 def setUp(self):
     self._fake_couch = FakeCouchDb()
     # use a 'real' db name here so that we don't cause other
     # tests down the line to fail.
     # Specifically KafkaChangeFeedTest.test_multiple_topics_with_partial_checkpoint
     self._fake_couch.dbname = 'test_commcarehq'
     with trap_extra_setup(KafkaUnavailableError):
         self.consumer = KafkaConsumer(
             topics.CASE,
             group_id='test-consumer',
             bootstrap_servers=[settings.KAFKA_URL],
             consumer_timeout_ms=100,
         )
     self.pillow = get_change_feed_pillow_for_db(
         'fake-changefeed-pillow-id', self._fake_couch)
Beispiel #8
0
    def __init__(self, views=None, docs=None):
        from fakecouch import FakeCouchDb
        self.views = views
        self.docs = docs
        self.db = FakeCouchDb(views=views, docs=docs)

        @classmethod
        def _get_db(*args):
            return self.db

        self.patches = [
            mock.patch('dimagi.ext.couchdbkit.Document.get_db', new=_get_db),
            mock.patch('dimagi.ext.couchdbkit.SafeSaveDocument.get_db', new=_get_db),
            mock.patch('dimagi.utils.couch.undo.UndoableDocument.get_db', new=_get_db),
        ]
Beispiel #9
0
 def setUp(self):
     super(CouchPillowRetryProcessingTest, self).setUp()
     self._fake_couch = FakeCouchDb()
     self._fake_couch.dbname = 'test_commcarehq'
     self.consumer = KafkaConsumer(
         topics.CASE,
         client_id='test-consumer',
         bootstrap_servers=settings.KAFKA_BROKERS,
         consumer_timeout_ms=100,
         enable_auto_commit=False,
     )
     try:
         next(self.consumer)
     except StopIteration:
         pass
     self.pillow = get_change_feed_pillow_for_db('fake-changefeed-pillow-id', self._fake_couch)
     self.original_process_change = self.pillow.process_change
Beispiel #10
0
def mock_out_couch(views=None, docs=None):
    """
    Mock out calls to couch so you can use SimpleTestCase

        @mock_out_couch()
        class TestMyStuff(SimpleTestCase):
            ...

    You can optionally pass default return values for specific views and doc
    gets.  See the FakeCouchDb docstring for more specifics.
    """
    from fakecouch import FakeCouchDb
    db = FakeCouchDb(views=views, docs=docs)

    def _get_db(*args):
        return db

    return mock.patch('dimagi.ext.couchdbkit.Document.get_db', new=_get_db)
Beispiel #11
0
 def setUp(self):
     self.database = FakeCouchDb()
     self.user_orig_db = CommCareUser.get_db()
     CommCareUser.set_db(self.database)
     self.factory = RequestFactory()
     domain = Domain.get_or_create_with_name(DOMAIN)
     domain.is_active = True
     domain.save()
     self.domain = domain
     user = WebUser.get_by_username('test')
     if not user:
         user = WebUser.create(domain.name, 'test', 'passwordtest', None,
                               None)
     user.is_authenticated = True
     user.is_superuser = True
     user.is_authenticated = True
     user.is_active = True
     self.user = user
Beispiel #12
0
 def setUp(self):
     super(ChangeFeedPillowTest, self).setUp()
     self._fake_couch = FakeCouchDb()
     # use a 'real' db name here so that we don't cause other
     # tests down the line to fail.
     # Specifically KafkaChangeFeedTest.test_multiple_topics_with_partial_checkpoint
     self._fake_couch.dbname = 'test_commcarehq'
     self.consumer = KafkaConsumer(
         topics.CASE_SQL,
         bootstrap_servers=settings.KAFKA_BROKERS,
         consumer_timeout_ms=100,
         enable_auto_commit=False,
     )
     try:
         # This initialized the consumer listening from the latest offset
         next(self.consumer)
     except StopIteration:
         pass
     self.pillow = get_change_feed_pillow_for_db('fake-changefeed-pillow-id', self._fake_couch)
Beispiel #13
0
 def setUp(self):
     # we have to set the fake database before any other calls
     self.domain = 'test-loc-parent-id'
     self.evaluation_context = EvaluationContext({"domain": self.domain})
     self.orig_db = Location.get_db()
     self.database = FakeCouchDb()
     Location.set_db(self.database)
     self.parent = self._make_location(_id=uuid.uuid4().hex)
     self.child = self._make_location(_id=uuid.uuid4().hex,
                                      lineage=[self.parent._id])
     self.grandchild = self._make_location(
         _id=uuid.uuid4().hex, lineage=[self.child._id, self.parent._id])
     self.expression_spec = {
         "type": "location_parent_id",
         "location_id_expression": {
             "type": "property_name",
             "property_name": "location_id",
         }
     }
     self.expression = ExpressionFactory.from_spec(self.expression_spec)
Beispiel #14
0
 def setUp(self):
     self.database = FakeCouchDb()
     self.case_orig_db = CommCareCase.get_db()
     self.form_orig_db = XFormInstance.get_db()
     self.user_orig_db = CommCareUser.get_db()
     CommCareCase.set_db(self.database)
     XFormInstance.set_db(self.database)
     CommCareUser.set_db(self.database)
     self.factory = RequestFactory()
     domain = Domain.get_or_create_with_name('up-nrhm')
     domain.is_active = True
     domain.save()
     self.domain = domain
     user = WebUser.get_by_username('test')
     if not user:
         user = WebUser.create(domain.name, 'test', 'passwordtest')
     user.is_authenticated = True
     user.is_superuser = True
     user.is_authenticated = True
     user.is_active = True
     self.user = user
 def setUp(self):
     # we have to set the fake database before any other calls
     self.orig_db = CommCareCase.get_db()
     self.database = FakeCouchDb()
     CommCareCase.set_db(self.database)
     self.spec = {
         "type": "related_doc",
         "related_doc_type": "CommCareCase",
         "doc_id_expression": {
             "type": "property_name",
             "property_name": "parent_id"
         },
         "value_expression": {
             "type": "property_name",
             "property_name": "related_property"
         }
     }
     self.expression = ExpressionFactory.from_spec(self.spec)
     self.nested_expression = ExpressionFactory.from_spec({
         "type":
         "related_doc",
         "related_doc_type":
         "CommCareCase",
         "doc_id_expression": {
             "type": "property_name",
             "property_name": "parent_id"
         },
         "value_expression": {
             "type": "related_doc",
             "related_doc_type": "CommCareCase",
             "doc_id_expression": {
                 "type": "property_name",
                 "property_name": "parent_id"
             },
             "value_expression": {
                 "type": "property_name",
                 "property_name": "related_property"
             }
         }
     })
Beispiel #16
0
    def setUp(self):
        self.spec = {
            "type": "related_doc",
            "related_doc_type": "CommCareCase",
            "doc_id_expression": {
                "type": "property_name",
                "property_name": "parent_id"
            },
            "value_expression": {
                "type": "property_name",
                "property_name": "related_property"
            }
        }
        self.expression = ExpressionFactory.from_spec(self.spec)
        self.nested_expression = ExpressionFactory.from_spec({
            "type": "related_doc",
            "related_doc_type": "CommCareCase",
            "doc_id_expression": {
                "type": "property_name",
                "property_name": "parent_id"
            },
            "value_expression": {
                "type": "related_doc",
                "related_doc_type": "CommCareCase",
                "doc_id_expression": {
                    "type": "property_name",
                    "property_name": "parent_id"
                },
                "value_expression": {
                    "type": "property_name",
                    "property_name": "related_property"
                }
            }
        })

        self.database = FakeCouchDb()
        RelatedDocExpressionSpec.db_lookup = lambda _, type: self.database
Beispiel #17
0
 def dao(self):
     return CouchDocumentStore(FakeCouchDb())
Beispiel #18
0
 def setUp(self):
     self.orig_db = CommCareCase.get_db()
     self.database = FakeCouchDb()
     CommCareCase.set_db(self.database)
Beispiel #19
0
 def setUp(self):
     self.db = Dhis2Repeater.get_db()
     self.fakedb = FakeCouchDb()
     Dhis2Repeater.set_db(self.fakedb)
Beispiel #20
0
 def setUp(self):
     self.fakedb = FakeCouchDb()
     MockIndicators.set_db(self.fakedb)
     MockIndicatorsWithGetters.set_db(self.fakedb)
     MockDoc.set_db(self.fakedb)
Beispiel #21
0
 def setUp(self):
     self.db = Dhis2Repeater.get_db()
     self.fakedb = FakeCouchDb()
     Dhis2Repeater.set_db(self.fakedb)
     self.form = {
         "domain": DOMAIN,
         "form": {
             "@xmlns": "test_xmlns",
             "event_date": "2017-05-25T21:06:27.012000",
             "completed_date": "2017-05-25T21:06:27.012000",
             "event_location": "-33.6543213 19.12344312 abcdefg",
             "name": "test event",
             "meta": {
                 "location": '',
                 "timeEnd": "2017-05-25T21:06:27.012000",
                 "timeStart": "2017-05-25T21:06:17.739000",
                 "userID": self.user.user_id,
                 "username": self.user.username
             }
         },
         "received_on": "2017-05-26T09:17:23.692083Z",
     }
     self.config = {
         'form_configs':
         json.dumps([{
             'xmlns':
             'test_xmlns',
             'program_id':
             'test program',
             'event_status':
             'COMPLETED',
             'completed_date': {
                 'doc_type': 'FormQuestion',
                 'form_question': '/data/completed_date',
                 'external_data_type': DHIS2_DATA_TYPE_DATE
             },
             'org_unit_id': {
                 'doc_type': 'FormUserAncestorLocationField',
                 'form_user_ancestor_location_field': LOCATION_DHIS_ID
             },
             'event_location': {
                 'form_question': '/data/event_location'
             },
             'datavalue_maps': [{
                 'data_element_id': 'dhis2_element_id',
                 'value': {
                     'doc_type': 'FormQuestion',
                     'form_question': '/data/name'
                 }
             }]
         }])
     }
     config_form = Dhis2ConfigForm(data=self.config)
     self.assertTrue(config_form.is_valid())
     data = config_form.cleaned_data
     conn = ConnectionSettings.objects.create(url="http://dummy.com",
                                              domain=DOMAIN)
     self.repeater = Dhis2Repeater(domain=DOMAIN,
                                   connection_settings_id=conn.id)
     self.repeater.dhis2_config.form_configs = [
         Dhis2FormConfig.wrap(fc) for fc in data['form_configs']
     ]
     self.repeater.save()