Adding Token generation for users on /tokens

This commit is contained in:
Eibriel
2015-03-14 15:08:36 +01:00
parent 38b4d01581
commit a45a4b491e
3 changed files with 100 additions and 26 deletions

View File

@@ -4,10 +4,17 @@ import unittest
from pymongo import MongoClient
from bson import ObjectId
from datetime import datetime
import base64
class AttractTestCase(unittest.TestCase):
def encodeUsrPass(self, user, password):
usrPass = "{0}:{1}".format(user, password)
b64Val = base64.b64encode(usrPass)
return b64Val
def addUser(self, firstname, lastname, role):
return self.app.post('/users', data=dict(
firstname=firstname,
@@ -46,6 +53,21 @@ class AttractTestCase(unittest.TestCase):
headers=headers,
follow_redirects=True)
def login(self, username, password):
headers = {
'content-type': 'application/json',
'Authorization': 'Basic {0}'.format(
self.encodeUsrPass(username, password))
}
data = {
'username': username,
}
return self.app.post(
'/tokens',
data=json.dumps(data),
headers=headers,
follow_redirects=True)
def logout(self):
return self.app.get('/logout', follow_redirects=True)
@@ -72,6 +94,11 @@ class AttractTestCase(unittest.TestCase):
rv = self.addNode('Shot01', '55016a52135d32466fc800be', properties)
assert 201 == rv.status_code
def test_login(self):
rv = self.login('admin', 'secret')
#print (rv.data)
assert 201 == rv.status_code
def test_empty_db(self):
rv = self.app.get('/')
assert 401 == rv.status_code
@@ -93,7 +120,6 @@ class AttractTestCase(unittest.TestCase):
"_updated": datetime.now(),
"firstname": "TestFirstname",
"lastname": "TestLastname",
"token": "ANLGNSIEZJ",
"role": "author",
"_created": datetime.now(),
"_etag": "302236e27f51d2e26041ae9de49505d77332b260"
@@ -108,8 +134,16 @@ class AttractTestCase(unittest.TestCase):
"_etag": "0ea3c4f684a0cda85525184d5606c4f4ce6ac5f5"
}
test_token = {
"-id": ObjectId("5502f289135d3274cb658ba7"),
"username": "TestFirstname",
"token": "ANLGNSIEZJ",
"_etag": "1e96ed46b133b7ede5ce6ef0d6d4fc53edd9f2ba"
}
db.users.insert(test_user)
db.node_types.insert(test_node_type)
db.tokens.insert(test_token)
# Initialize Attract
os.environ['TEST_ATTRACT'] = '1'