Exemplo n.º 1
0
    def test_roles(self):
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')

        r1 = Role(name='Admin')
        r2 = Role(name='Operator')
        r3 = Role(name='Client')

        self.db.session.add(u1)
        self.db.session.add(u2)
        self.db.session.add(r1)
        self.db.session.add(r2)
        self.db.session.add(r3)
        self.db.session.commit()

        u1 = User.find_by_username('john')
        u2 = User.find_by_username('susan')
        self.assertEqual(u1.roles.all(), [])
        self.assertEqual(u2.roles.all(), [])

        u1.add_role(r1)
        u2.add_role(r2)
        u2.add_role(r3)
        self.db.session.add(u1)
        self.db.session.add(u2)
        self.db.session.commit()

        # John has exactly 1 role?
        self.assertEqual(u1.roles.count(), 1)
        # John has the 'Admin' role?
        self.assertEqual(u1.roles.first().name, 'Admin')
        # Susan has exactly 2 roles?
        self.assertEqual(u2.roles.count(), 2)
        # Susan has the role 'Client'?
        self.assertTrue(u2.has_role(r3))