def test_import_merge_2(self): self._clear_db() self.assertEqual(len(Event.objects.all()), 0) to_db.convert(XML['initial_data'], False) to_db.convert(XML['initial_data_merge'], True) events = Event.objects.all() people = Person.objects.all() orgs = Organization.objects.all() self.assertEqual(len(events), 1) self.assertEqual(len(events[0].organization_set.all()), 1) self.assertEqual(len(events[0].person_set.all()), 1) self.assertEqual(len(events[0].embed_set.all()), 10)# should add a new Lumineers Music video! self.assertEqual(len(people), 1) self.assertEqual(len(people[0].event.all()), 1) self.assertEqual(len(people[0].organization_set.all()), 1) self.assertEqual(len(people[0].embed_set.all()), 11) self.assertEqual(len(orgs), 1) self.assertEqual(len(orgs[0].event.all()), 1) self.assertEqual(len(orgs[0].person.all()), 1) self.assertEqual(len(orgs[0].embed_set.all()), 11) #--------------- Meaty part of test below self.assertEqual(events.get(xml_id="HURSAN").name, "Hurricane Sandy TEST") self.assertEqual(events.get(xml_id="HURSAN").kind, "natural disaster TEST") self.assertEqual(events.get(xml_id="HURSAN").location, "New York metropolitan area TESTTEST") self.assertEqual(events.get(xml_id="HURSAN").human_impact, "This was a terrible tragedy.\nAt least 286 people were killed along the path of the storm in seven countries.") self._reset_db()
def test_import_merge(self): self._clear_db() self.assertEqual(len(Event.objects.all()), 0) to_db.convert(XML['initial_data'], False) to_db.convert(XML['initial_data'], True) events = Event.objects.all() people = Person.objects.all() orgs = Organization.objects.all() self.assertEqual(len(events), 1) self.assertEqual(len(events[0].organization_set.all()), 1) self.assertEqual(len(events[0].person_set.all()), 1) self.assertEqual(len(events[0].embed_set.all()), 9) self.assertEqual(len(people), 1) self.assertEqual(len(people[0].event.all()), 1) self.assertEqual(len(people[0].organization_set.all()), 1) self.assertEqual(len(people[0].embed_set.all()), 11) self.assertEqual(len(orgs), 1) self.assertEqual(len(orgs[0].event.all()), 1) self.assertEqual(len(orgs[0].person.all()), 1) self.assertEqual(len(orgs[0].embed_set.all()), 11) self._reset_db()
def upload_xml(request): ''' Allows uploading data in the form of XML through the website ''' if request.POST: form = XmlUploadForm(request.POST, request.FILES) if form.is_valid(): f = form['xml'].value() f.seek(0) merge = True if form['method'] == 'merge' else False try: to_db.convert(f.read(), merge=merge) flush_cache() return HttpResponseRedirect('/xml') except Exception as e: form._errors.setdefault('__all__', forms.util.ErrorList()) form._errors['__all__'].append(form.error_class([ 'Could not save data:\n' + e.message])) else: form = XmlUploadForm() return render(request, 'crisis_app/xml_upload.html', {'form': form})
def test_import(self): self._clear_db() self.assertEqual(len(Event.objects.all()), 0) to_db.convert(XML["initial_data"]) events = Event.objects.all() people = Person.objects.all() orgs = Organization.objects.all() self.assertEqual(len(events), 1) self.assertEqual(len(events[0].organization_set.all()), 1) self.assertEqual(len(events[0].person_set.all()), 1) self.assertEqual(len(events[0].embed_set.all()), 8) self.assertEqual(len(people), 1) self.assertEqual(len(people[0].event.all()), 1) self.assertEqual(len(people[0].organization_set.all()), 1) self.assertEqual(len(people[0].embed_set.all()), 10) self.assertEqual(len(orgs), 1) self.assertEqual(len(orgs[0].event.all()), 1) self.assertEqual(len(orgs[0].person.all()), 1) self.assertEqual(len(orgs[0].embed_set.all()), 10) self._reset_db()