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 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')
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 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')
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')
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()
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')
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')
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()
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()