Ejemplo n.º 1
0
def inna_import(request, filename):
    pretend = True
    
    if request.method == "POST":
        if "commit" in request.POST:
            pretend = False
    
    ip = InnaParser(os.path.join(INNA_ROOT, "%s.csv" % filename), pretend=pretend)
    
    error = None
    try:
        ip.update()
    except InnaParserException, e:
        error = e.message
Ejemplo n.º 2
0
	def testParserIncorrectSeparator(self):
		parser = InnaParser("student/test_files/inna_invalid_separator.csv", pretend=False)
		with self.assertRaises(InnaParserException):
			parser.update()
Ejemplo n.º 3
0
	def testParserMissingValue(self):
		parser = InnaParser("student/test_files/inna_invalid_missing_value.csv", pretend=False)
		with self.assertRaises(InnaParserException):
			parser.update()
Ejemplo n.º 4
0
	def testParserValid(self):
		self.assertEqual(Student.objects.count(), 0)
		self.assertEqual(Klass.objects.count(), 0)
		self.assertEqual(LegalGuardian.objects.count(), 0)

		# Import year 1
		parser = InnaParser("student/test_files/inna_year1.csv", pretend=False)
		parser.update()
		self.assertEqual(parser.stats["create"], 2)
		self.assertEqual(parser.stats["update"], 0)
		self.assertEqual(parser.stats["delete"], 0)

		self.assertEqual(Student.objects.count(), 2)
		self.assertEqual(Klass.objects.count(), 2)
		self.assertEqual(LegalGuardian.objects.count(), 4)

		# Import year 1 again, should update
		parser = InnaParser("student/test_files/inna_year1.csv", pretend=False)
		parser.update()

		self.assertEqual(parser.stats["create"], 0)
		self.assertEqual(parser.stats["update"], 2)
		self.assertEqual(parser.stats["delete"], 0)

		# Import year 2, should remove 1, update 1, delete 1
		parser = InnaParser("student/test_files/inna_year2.csv", pretend=False)
		parser.update()

		self.assertEqual(parser.stats["create"], 1)
		self.assertEqual(parser.stats["update"], 1)
		self.assertEqual(parser.stats["delete"], 1)

		self.assertEqual(Student.objects.count(), 3)
		self.assertEqual(Klass.objects.count(), 4)
		self.assertEqual(LegalGuardian.objects.count(), 6)

		# Import year 2 again, should update
		parser = InnaParser("student/test_files/inna_year2.csv", pretend=False)
		parser.update()

		self.assertEqual(parser.stats["create"], 0)
		self.assertEqual(parser.stats["update"], 2)
		self.assertEqual(parser.stats["delete"], 0)

		# Import year 2 once more, but now from a file with a
		# missing leading zero in the kennitala field
		parser = InnaParser("student/test_files/inna_year2_missing_leading_zero.csv", pretend=False)
		parser.update()

		self.assertEqual(parser.stats["create"], 0)
		self.assertEqual(parser.stats["update"], 2)
		self.assertEqual(parser.stats["delete"], 0)

		# Verify that the prev student has been deactivated
		self.assertEqual(Student.objects.filter(status__active=True).count(), 2)
		self.assertEqual(Student.objects.filter(status__active=False).count(), 1)