예제 #1
0
	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()	
예제 #2
0
	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()
예제 #3
0
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()