Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Skill(models.Model):
- title = models.CharField(max_length=255)
- category = models.ForeignKey(
- SkillCategory, default=None, null=True, blank=True
- )
- def __unicode__(self):
- return self.title
- class UserProfile(models.Model):
- user = models.OneToOneField(User)
- skill = models.ManyToManyField(Skill, default=None)
- avatar = models.URLField(
- max_length=400, default=None, null=True, blank=True
- )
- def __unicode__(self):
- return self.user.username
- def update_skills(self, cleaned_skills):
- for s in cleaned_skills:
- skill, created = Skill.objects.get_or_create(title=s)
- self.skill.add(skill)
- class ProfileTestCase(unittest.TestCase):
- def setUp(self):
- # mock user
- self.user = mock.Mock(spec=User)
- self.user.username = "john"
- self.user.email = "johndoe@hotmail.com"
- self.user.password = "pass"
- # mock profile
- self.userprofile = mock.Mock(spec=UserProfile)
- self.userprofile.user = self.user
- # mock skill category
- self.skill_category = mock.Mock(spec=SkillCategory)
- self.skill_category.title = "foo"
- # mock skill
- self.skill = mock.Mock(spec=Skill)
- self.skill.title = "ninja"
- self.skill.category = self.skill_category
- def test_skillcategory_created(self):
- self.assertEqual(self.skill.category.title, 'foo')
- def test_skill_created(self):
- self.assertEqual(self.skill.title, 'ninja')
- ...
- # and so on
- ...
- def test_update_skills(self):
- cleaned_skills = ['mysql', 'unix']
- self.userprofile.update_skills(cleaned_skills)
- skills = self.userprofile.skill.values_list('title', flat=True)
- self.assertTrue('mysql' in skills)
- self.userprofile.update_skills(cleaned_skills)
- def test_my_method(self):
- my_model = MyModel(someattr='someval', ...)
- self.assertEqual(my_model.my_method(), ...)
- from mixer.backend.django import mixer
- skill = mixer.blend(Skill, category__title='foo')
- userprofile = mixer.blend(UserProfile, user__username='john')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement