From bb40ef2d6a9cb42d3487295c50c522508f33c14c Mon Sep 17 00:00:00 2001 From: Jeffrey Forman Date: Sat, 1 Dec 2012 16:20:50 -0500 Subject: [PATCH] add validating tests around models with incorrect/missing data --- binder/tests/models.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/binder/tests/models.py b/binder/tests/models.py index a4f83ae..3735256 100644 --- a/binder/tests/models.py +++ b/binder/tests/models.py @@ -1,11 +1,25 @@ from django.test import TestCase - +from django.db import IntegrityError from binder import models class ModelTests(TestCase): def test_EmptyBindServerModel(self): + """Test that adding a well-formed BindServer works.""" self.assertEqual(models.BindServer.objects.count(), 0) bindserver_1 = models.BindServer(hostname="test1", - statistics_port = 1234) + statistics_port=1234) bindserver_1.save() self.assertEqual(models.BindServer.objects.count(), 1) + + def test_BindServerMissingStatisticsPort(self): + """Attempt to add a BindServer without a statistics port.""" + bindserver_1 = models.BindServer(hostname="badtest1") + with self.assertRaisesMessage(IntegrityError, "binder_bindserver.statistics_port may not be NULL"): + bindserver_1.save() + + def test_BindServerNonIntStatisticsPort(self): + """Attempt to add a Bindserver with a non-integer statistics port.""" + bindserver_1 = models.BindServer(hostname="foo", + statistics_port="bar1") + with self.assertRaisesMessage(ValueError, "invalid literal for int() with base 10: 'bar1'"): + bindserver_1.save()