Am working on testing a django model called Authenticator, the Authenticator model has a field with ManyToManyField and OneToOneField. When i test the model i get RelatedObjectDoesNotExist and ValueError: Cannot assign "'matt'": "Authenticator.authenticator" must be a "User" instance.
Here is my model
class Authenticator(models.Model):
orders = models.ManyToManyField('client.Order', related_name = 'order_set')
authenticator = models.OneToOneField(User, on_delete = models.CASCADE)
weight = models.IntegerField(default = 0)
percentage_accuracy = models.FloatField("Nearness to aggregate score", default=0)
date_assigned = models.DateTimeField(default = timezone.now)
job_count = models.IntegerField(default = 0)
percentage_consistency = models.FloatField(default = 0)
def __unicode__(self):
return '%s' %(self.authenticator.username)
My test code is
from django.test import TestCase
from .models import User, Authenticator
class EntryModelTest(TestCase):
def test_string_representation_for_authenticator(self):
auth = Authenticator(authenticator = "matt")
print "Auth: ", auth
consistency_weight = Authenticator(weight = "0")
print "Consistency Weight: ", consistency_weight
self.assertEqual(str(auth), auth.authenticator)
self.assertEqual(int(consistency_weight), consistency_weight.weight)