def refresh_dataset(request, report_pk): # download the report csv data from commcare try: report = CommcareReport.objects.get(pk=report_pk) except CommcareReport.DoesNotExist: return HttpResponseNotFound(_(u"Error: Report Not found!")) else: csv_file = None try: csv_file = download_commcare_zip_report( report.source_url, username=settings.COMMCARE_USERNAME, password=settings.COMMCARE_PASSWORD) except ConnectionError: request.session['error_msg'] =\ _(u"Connection Error: Unable to download report from %s." % report.source_url) if csv_file is not None: # push the data to bamboo.io data = bamboo_store_csv_file(csv_file, settings.BAMBOO_POST_URL) if type(data) == dict: report.dataset_id = data["id"] report.save() # TODO: delete csv file or cache else: return HttpResponse(_(u"Unable to download report!")) if request.is_ajax(): return HttpResponse(u"OK") else: return HttpResponseRedirect(reverse(index))
def test_download_commcare_report(self): file_name = download_commcare_zip_report( self._commcare_report_url, settings.COMMCARE_USERNAME, settings.COMMCARE_PASSWORD ) self.assertIsNotNone(file_name) self.assertIn("output", file_name) self.assertTrue(file_name.endswith('#.csv'))