def handle(self, *args, **options): if len(args) != 2: raise CommandError("This command takes exactly two arguments: %s" % self.args) email, user_type = args user_type = user_type.lower() if user_type not in ("famille", "prestataire"): raise CommandError("Unknown user type %s" % user_type) # find the user in the opposite type UserClass, NewClass = (Famille, Prestataire) if user_type == "prestataire" else (Prestataire, Famille) try: user = UserClass.objects.get(email=email) except UserClass.DoesNotExist: raise CommandError("User with email %s does not exists") convert_user(user, NewClass)
def test_convert_user_to_famille(self): new_famille = utils.convert_user(self.presta, models.Famille) self.assertTrue(new_famille.pk) self.assertEqual(new_famille.city, "Mulhouse") self.assertEqual(new_famille.email, "*****@*****.**") self.assertEqual(new_famille.user, self.user2) self.assertEqual(new_famille.type_presta, "nounou") self.assertTrue(new_famille.permis) self.assertIsNone(models.Prestataire.objects.filter(email="*****@*****.**").first())
def test_convert_user_to_presta(self): new_presta = utils.convert_user(self.famille, models.Prestataire) self.assertTrue(new_presta.pk) self.assertEqual(new_presta.city, "Paris") self.assertEqual(new_presta.email, "*****@*****.**") self.assertEqual(new_presta.user, self.user1) self.assertEqual(new_presta.type, "baby") self.assertTrue(new_presta.animaux) self.assertIsNone(models.Famille.objects.filter(email="*****@*****.**").first())