Exemple #1
0
    def setUp(self):

        self.daoManager = DAOManagerMysql()
        self.daoManager.init()
        create_tables(self.daoManager.conecction.cursor(),
                      'tests/db/schemas/db_login.sql')
        self.daoManager.commit()
Exemple #2
0
def edit():
    mysqlDM = DAOManagerMysql()
    # verficia si el toquen que se tiene en las cookies esta registrado en la bd y devulve el usuario corresponidente
    user = mysqlDM.do(mysqlDM.USER, mysqlDM.EXIST_TOKEN,
                      request.cookies.get('token'))

    if user:
        return render_view('edit.html', user=user)
    perpetualT.cancel()
    return render_view('sign_in.html')
Exemple #3
0
    def setUp(self):

        app.testing = True
        app.secret_key = 'testing_key'
        self.app = app.test_client(use_cookies=True)

        p = PerpetualTimer()
        p.setTime(10)
        self.daoManager = DAOManagerMysql()
        self.daoManager.init()

        create_tables(self.daoManager.conecction.cursor(),
                      'tests/db/schemas/db_login.sql')
        self.daoManager.commit()
Exemple #4
0
def search():
    mysqlDM = DAOManagerMysql()   
    # verficia si el toquen que se tiene en las cookies esta registrado en la bd y devulve el usuario corresponidente
    user = mysqlDM.do(mysqlDM.USER,mysqlDM.EXIST_TOKEN,request.cookies.get('token'))
    
    if user:
        search = request.args.get('search')
        users = mysqlDM.do(mysqlDM.USER, mysqlDM.GET_ALL,search)
        lista=[]        
        for us in users:
            lista.append({'email':us.email})
            
        return jsonify(lista)

    return render_view('sign_in.html')
Exemple #5
0
def edited():
    mysqlDM = DAOManagerMysql()
    # verficia si el toquen que se tiene en las cookies esta registrado en la bd y devulve el usuario corresponidente
    user = mysqlDM.do(mysqlDM.USER, mysqlDM.EXIST_TOKEN,
                      request.cookies.get('token'))

    if user:
        emailB = user.email
        passwordB = user.password
        if request.method == 'POST':

            email = request.form['username']
            password = request.form['password']
            user.email = email
            user.password = password
            state = mysqlDM.do(mysqlDM.USER, mysqlDM.UPDATE, user)
            print(state)
            print('arto' * 8)
            if state:
                mysqlDM.commit()
                return render_view('home.html', user=user)
            flash('Error al editar usuario')
            return render_view('edit.html', user=user)
        user.email = emailB
        user.password = passwordB
        return render_view('home.html', user=user)
    perpetualT.cancel()
    return render_view('sign_in.html')
Exemple #6
0
def changeToken(idtoken):
    print('cambia')
    mysqlDM = DAOManagerMysql()
    tokenValue = generateToken()
    t = Token(tokenValue, datetime.datetime.now(), idtoken)
    #actualiza el valro del token en la bd
    mysqlDM.do(mysqlDM.TOKEN, mysqlDM.UPDATE, t)
    mysqlDM.commit()
Exemple #7
0
def signIn():

    mysqlDM = DAOManagerMysql()   
    # verficia si el toquen que se tiene en las cookies esta registrado en la bd y devulve el usuario corresponidente
    user = mysqlDM.do(mysqlDM.USER,mysqlDM.EXIST_TOKEN,request.cookies.get('token'))
    perpetualT = PerpetualTimer() 
    if user:

        # inicio de ciclo infinito cambio de token             
        perpetualT.setFunction(changeToken, user.token.id)
        perpetualT.start()

        return render_view('home.html',user=user)
        

    if request.method == 'POST':
        
        # generacion de token
        tokenValue = generateToken()
        t = Token(tokenValue,datetime.datetime.now(),0)
        email = request.form['username']
        # busqueda de usario por gmail (ingresado anteriormente)       
        user = mysqlDM.do(mysqlDM.USER, mysqlDM.GET_ONE,email)
        
        if user != None:
            
            # verificacion de password
            if user.password == request.form['password']:
                
                t.id=user.token.id
                mysqlDM.do(mysqlDM.TOKEN, mysqlDM.UPDATE, t)
                mysqlDM.commit()
                session['user'] = user.id                
                response = make_response(render_view('home.html',user=user))
                # expiracion de cookie (no es posble ponerl una espiracion menor a 0.3 dias)
                expireDate = t.date + datetime.timedelta(days=0.3)
                response.set_cookie("token",tokenValue,expires = expireDate) 
                               
                perpetualT.setFunction(changeToken, user.token.id)                
                perpetualT.start()                                            
                
                return response        
        flash('Datos ingresados incorrectos')
        perpetualT.cancel()        
        return render_view('sign_in.html')        

    perpetualT.cancel()
    return render_view('sign_in.html')
Exemple #8
0
def register():

    mysqlDM = DAOManagerMysql()
    user = mysqlDM.do(mysqlDM.USER, mysqlDM.EXIST_TOKEN,
                      request.cookies.get('token'))
    perpetualT = PerpetualTimer()

    if user:

        perpetualT.setFunction(changeToken, user.token.id)
        perpetualT.start()

        return render_view('home.html', user=user)

    if request.method == 'POST':

        # generacion de token
        tokenValue = generateToken()
        t = Token(tokenValue, datetime.datetime.now(), 0)
        # creacion de usario
        user = User(request.form['username'], request.form['password'], t, '0')
        #if m.create(user):
        mysqlDM.beginTransaction()
        state = mysqlDM.do(mysqlDM.USER, mysqlDM.CREATE, user)
        mysqlDM.endTransaction(state)

        if state:
            user = mysqlDM.do(mysqlDM.USER, mysqlDM.GET_ONE, user.email)
            session['user'] = user.id
            response = make_response(render_view('home.html', user=user))
            # expiracion de cookie (no es posble ponerl una espiracion menor a 0.3 dias)
            expireDate = t.date + datetime.timedelta(days=0.3)
            response.set_cookie("token", tokenValue, expires=expireDate)
            perpetualT.setFunction(changeToken, user.token.id)
            perpetualT.start()
            #return 'Email: {} \nPassword: {}'.format(user.email,user.password)
            return response

        perpetualT.cancel()
        flash('Email ya creado')

    perpetualT.cancel()
    return render_view('register.html')
Exemple #9
0
class ViewsTestCase(unittest.TestCase):
    def setUp(self):

        app.testing = True
        app.secret_key = 'testing_key'
        self.app = app.test_client(use_cookies=True)

        p = PerpetualTimer()
        p.setTime(10)
        self.daoManager = DAOManagerMysql()
        self.daoManager.init()

        create_tables(self.daoManager.conecction.cursor(),
                      'tests/db/schemas/db_login.sql')
        self.daoManager.commit()

    def test_register_view(self):

        # no inico de sesion
        res = self.app.get('/register', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn('Registrarse', str(res.data))

        # register user
        data = {'username': '******', 'password': '******'}
        res = self.app.post('/register', follow_redirects=True, data=data)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<td>userRegisterTest</td>', str(res.data))

    def test_sign_in_view(self):

        # no inico de sesion
        res = self.app.get('/sign_in', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<h4 class="col s12 center-align">Inicio Sesi',
                      str(res.data))

        # register user
        data = {'username': '******', 'password': '******'}
        res = self.app.post('/sign_in', follow_redirects=True, data=data)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<td>[email protected]</td>', str(res.data))

    def test_edit_view(self):

        # no inico de sesion
        res = self.app.get('/edit', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<h4 class="col s12 center-align">Inicio Sesi',
                      str(res.data))

        # edit views
        self.app.set_cookie('127.0.0.1', 'token', '7688377309094510949')

        res = self.app.get('/edit', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn(
            '<h4 class="offset-s3 col s6 center-align">Edit user</h4>',
            str(res.data))

    def test_edited_view(self):

        # no inico de sesion
        res = self.app.get('/edited', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<h4 class="col s12 center-align">Inicio Sesi',
                      str(res.data))

        # edit user
        self.app.set_cookie('127.0.0.1', 'token', '7688377309094510949')
        data = {'username': '******', 'password': '******'}
        res = self.app.post('/edited', follow_redirects=True, data=data)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<td>[email protected]</td>', str(res.data))

    def test_search_view(self):

        # no inico de sesion
        res = self.app.get('/search', follow_redirects=True)
        self.assertEqual(res.status_code, 200)
        self.assertIn('<h4 class="col s12 center-align">Inicio Sesi',
                      str(res.data))

        # search
        self.app.set_cookie('127.0.0.1', 'token', '7688377309094510949')
        search = 'gmail'
        data = {
            'search': search,
        }
        res = self.app.get('/search', follow_redirects=True, query_string=data)

        data = json.loads(res.data)
        self.assertEqual(res.status_code, 200)

        for u in data:
            self.assertIn(search, u['email'])

    def tearDown(self):

        self.daoManager.conecction.close()
Exemple #10
0
class UserTestCase(unittest.TestCase):
    def setUp(self):

        self.daoManager = DAOManagerMysql()
        self.daoManager.init()
        create_tables(self.daoManager.conecction.cursor(),
                      'tests/db/schemas/db_login.sql')
        self.daoManager.commit()

    def test_user_creation(self):

        # is nice
        token = Token('token3', datetime.datetime.now(), '0')
        user = User('*****@*****.**', '12345', token, '0')
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)
        self.daoManager.commit()
        self.assertTrue(res)

        # no empty fields
        token = Token('token2', datetime.datetime.now(), '0')
        user = User('', '', token, '0')
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)
        self.daoManager.commit()
        self.assertFalse(res)

        # user equal None
        user = None
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)
        self.daoManager.commit()
        self.assertFalse(res)

    def test_user_deletion(self):

        # is nice
        res = self.daoManager.do(DAOManager.USER, DAOManager.DELETE, 9)
        self.daoManager.commit()
        self.assertTrue(res)

        # delete a row where id out range
        res = self.daoManager.do(DAOManager.USER, DAOManager.DELETE, 2000)
        self.daoManager.commit()
        self.assertFalse(res)

        # delete a row where id is not correctly
        res = self.daoManager.do(DAOManager.USER, DAOManager.DELETE, 'borrar')
        self.daoManager.commit()
        self.assertFalse(res)

    def test_user_update(self):

        # is nice
        token = Token('token2Update', datetime.datetime.now(), 58)
        userUpdate = User('andres', 'pas23', token, 58)
        res = self.daoManager.do(DAOManager.USER, DAOManager.UPDATE,
                                 userUpdate)
        self.daoManager.commit()
        self.assertTrue(res)

        # no empty fields
        token = Token('token2Update', datetime.datetime.now(), 58)
        userUpdate = User('', '', token, 58)
        res = self.daoManager.do(DAOManager.USER, DAOManager.UPDATE,
                                 userUpdate)
        self.daoManager.commit()
        self.assertFalse(res)

        # user equal None
        userUpdate = None
        res = self.daoManager.do(DAOManager.USER, DAOManager.UPDATE,
                                 userUpdate)
        self.daoManager.commit()
        self.assertFalse(res)

        # update a row where id out range
        token = Token('token2Update', datetime.datetime.now(), 70)
        userUpdate = User('lizeth', 'pas123', token, 70)
        res = self.daoManager.do(DAOManager.USER, DAOManager.UPDATE,
                                 userUpdate)
        self.daoManager.commit()
        self.assertFalse(res)

        # update a row where id is not correctly
        token = Token('token2Update', datetime.datetime.now(), 'no')
        userUpdate = User('', '', token, 'no')
        res = self.daoManager.do(DAOManager.USER, DAOManager.UPDATE,
                                 userUpdate)
        self.daoManager.commit()
        self.assertFalse(res)

    def test_user_get_one(self):

        # is nice
        email = '*****@*****.**'
        userGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ONE,
                                     email)
        self.assertIsInstance(userGet, User)

        # id no found
        idUser = 2000
        userGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ONE,
                                     idUser)
        self.assertIsNone(userGet, User)

        idUser = '******'
        userGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ONE,
                                     idUser)
        self.assertIsNone(userGet, User)

    def test_user_get_all(self):

        usersGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ALL)
        self.assertIsInstance(usersGet, list)

        # number users should be equal 18
        usersGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ALL)
        self.assertEqual(len(usersGet), 18)

    def test_user_get_filter(self):

        filt = 'gmail'
        usersGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ALL,
                                      filt)
        self.assertNotEqual(len(usersGet), 0)
        self.assertIsInstance(usersGet, list)

        # no user found with this filter
        filt = 'gmailcolombia'
        usersGet = self.daoManager.do(DAOManager.USER, DAOManager.GET_ALL,
                                      filt)
        self.assertEqual(len(usersGet), 0)

    def test_user_transaction(self):

        # is nice
        self.daoManager.beginTransaction()

        token = Token('token3', datetime.datetime.now(), '0')
        user = User('*****@*****.**', '12345', token, '0')
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)

        res1 = self.daoManager.endTransaction(res)

        self.assertTrue(res1)

        # user empty
        self.daoManager.beginTransaction()

        token = Token('token3', datetime.datetime.now(), '0')
        user = User('', '', token, '0')
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)

        res1 = self.daoManager.endTransaction(res)

        self.assertFalse(res1)

        # token empty incomplete
        self.daoManager.beginTransaction()

        token = Token('', datetime.datetime.now(), '0')
        user = User('', '', token, '0')
        res = self.daoManager.do(DAOManager.USER, DAOManager.CREATE, user)

        res1 = self.daoManager.endTransaction(res)

        self.assertFalse(res1)

    def tearDown(self):

        self.daoManager.conecction.close()