Ejemplo n.º 1
0
 def test_get_users(self):
   user_server.init_db('test_data.sql')
   response = self.app.get('/users', content_type='application/json')
   self.assertEqual(response._status_code, 200)
   users = json.loads(response.data)
   self.assertEqual(len(users['users']), 3)
   for user in users['users']:
     self.assertEqual(len(user.keys()), 4)
     self.assertIn('name', user.keys())
     self.assertIn('email', user.keys())
     self.assertIn('uri', user.keys())
     self.assertIn('id', user.keys())
Ejemplo n.º 2
0
 def get_user_m(self, name=False):
   user_server.init_db('test_data.sql')
   uri = name and '/users/Hansi' or '/users/4'
   response = self.app.get(uri, content_type='application/json')
   self.assertEqual(response._status_code, 404)
   uri = name and '/users/Hans%20Huber' or '/users/1'
   response = self.app.get(uri, content_type='application/json')
   self.assertEqual(response._status_code, 200)
   user = json.loads(response.data)['user']
   self.assertEqual(len(user.keys()), 4)
   self.assertIn('name', user.keys())
   self.assertIn('email', user.keys())
   self.assertIn('uri', user.keys())
   self.assertIn('id', user.keys())
Ejemplo n.º 3
0
 def test_init_db(self):
   user_server.init_db('test_data.sql')
   with closing(sqlite3.connect(
       user_server.app.config['DATABASE'])) as db:
     row = db.cursor().execute(
         'SELECT sql FROM SQLITE_MASTER WHERE type="table" and name="users"')
     self.assertEqual(row.fetchone()[0], u'CREATE TABLE users (\n  '
         'id integer PRIMARY KEY autoincrement,\n  name string UNIQUE '
         'NOT NULL,\n  email string NOT NULL,\n  password '
         'string NOT NULL\n)')
     row = db.cursor().execute(
         'SELECT sql FROM SQLITE_MASTER WHERE type="index" and '
         'name="name_index"')
     self.assertEqual(row.fetchone()[0], u'CREATE UNIQUE INDEX name_index '
         'ON users (name)')
Ejemplo n.º 4
0
 def update_user_m(self, method, name=False):
   user_server.init_db('test_data.sql')
   uri = name and '/users/Hans%20Huber' or '/users/1'
   response = method(uri, data='{"password": "******"name": None,
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 400)
   response = method(uri, data=json.dumps(
         {
           "name": "",
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 400)
   response = method(uri, data=json.dumps(
         {
           "name": "Hans Huber",
           "email": "hanshu@exampl",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 400)
   response = method(uri, data=json.dumps(
         {
           "name": "Hans Huber",
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 400)
   response = method(uri, data=json.dumps(
         {
           "name": "Hans Huber",
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 200)
   self.assertIn('*****@*****.**', response.data)
   self.assertIn('Hans Huber', response.data)
   self.assertNotIn('password', response.data)
   response = method(uri, data=json.dumps(
         {
           "name": "Hansi",
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 200)
   self.assertIn('*****@*****.**', response.data)
   self.assertIn('Hansi', response.data)
   uri = name and '/users/Hansi' or '/users/1'
   response = method(uri, data=json.dumps(
         {
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 200)
   self.assertIn('Hansi', response.data)
   self.assertIn('*****@*****.**', response.data)
   with closing(sqlite3.connect(
       user_server.app.config['DATABASE'])) as db:
     cursor = db.cursor().execute('SELECT password FROM users WHERE id=1')
     row = cursor.fetchone()
     self.assertEqual(row[0], '1042e9c6b7770c5a8d73d7274bb1e787')
   uri = name and '/users/Hans Huber' or '/users/4'
   response = method(uri, data=json.dumps(
         {
           "name": "Hans Huber",
           "email": "*****@*****.**",
           "password": "******"
         }
       ),
       content_type='application/json'
     )
   self.assertEqual(response._status_code, 404)
Ejemplo n.º 5
0
 def setUp(self):
     self.db_file, user_server.app.config['DATABASE'] = tempfile.mkstemp()
     user_server.app.config['TESTING'] = True
     self.app = user_server.app.test_client()
     user_server.init_db()