aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilo Casagrande <milo.casagrande@linaro.org>2015-03-05 15:26:58 +0100
committerMilo Casagrande <milo.casagrande@linaro.org>2015-03-05 15:26:58 +0100
commit431f7b23808dccacb88c48c20b0826b543460d54 (patch)
tree7a7fe47421f3dd0c4fb15ad9de75b2d4f9af1c51
parent57059b319774bb6bb5bc81e3442326eb80d76880 (diff)
Add logic for test lab token.
-rw-r--r--app/handlers/token.py6
-rw-r--r--app/models/__init__.py7
-rw-r--r--app/models/tests/test_token_model.py14
-rw-r--r--app/models/token.py12
4 files changed, 36 insertions, 3 deletions
diff --git a/app/handlers/token.py b/app/handlers/token.py
index 0e74b00..3c89b49 100644
--- a/app/handlers/token.py
+++ b/app/handlers/token.py
@@ -243,7 +243,11 @@ class TokenHandler(hbase.BaseHandler):
if str(json_get(models.UPLOAD_KEY, None)) != "None":
token.is_upload_token = json_get(models.UPLOAD_KEY)
- if token.is_ip_restricted and not json_get(models.IP_ADDRESS_KEY, None):
+ if str(json_get(models.TEST_LAB_KEY, None)) != "None":
+ token.is_test_lab_token = json_get(models.TEST_LAB_KEY)
+
+ if (token.is_ip_restricted and
+ not json_get(models.IP_ADDRESS_KEY, None)):
raise Exception("IP restricted but no IP addresses given")
elif (json_get(models.IP_ADDRESS_KEY, None) and
not token.is_ip_restricted):
diff --git a/app/models/__init__.py b/app/models/__init__.py
index d96953e..8a4ccec 100644
--- a/app/models/__init__.py
+++ b/app/models/__init__.py
@@ -109,6 +109,8 @@ SORT_ORDER_KEY = "sort_order"
STATUS_KEY = "status"
SURNAME_KEY = "surname"
SYSTEM_MAP_KEY = "system_map"
+TEST_CASE_KEY = "test_case"
+TEST_SET_KEY = "test_set"
TEXT_OFFSET_KEY = "text_offset"
TIME_KEY = "time"
TOKEN_KEY = "token"
@@ -135,10 +137,11 @@ ADMIN_KEY = "admin"
DELETE_KEY = "delete"
GET_KEY = "get"
IP_RESTRICTED = "ip_restricted"
-POST_KEY = "post"
-SUPERUSER_KEY = "superuser"
LAB_KEY = "lab"
+POST_KEY = "post"
PUT_KEY = "put"
+SUPERUSER_KEY = "superuser"
+TEST_LAB_KEY = "test_lab"
UPLOAD_KEY = "upload"
# Job and/or build status.
diff --git a/app/models/tests/test_token_model.py b/app/models/tests/test_token_model.py
index 7d5e4d9..2e5443f 100644
--- a/app/models/tests/test_token_model.py
+++ b/app/models/tests/test_token_model.py
@@ -91,6 +91,8 @@ class TestTokenModel(unittest.TestCase):
self.assertEqual(token_obj.is_get_token, 1)
self.assertEqual(token_obj.is_delete_token, 1)
self.assertEqual(token_obj.is_post_token, 1)
+ self.assertEqual(token_obj.is_test_lab_token, 0)
+ self.assertEqual(token_obj.is_lab_token, 0)
def test_token_is_admin_no_create(self):
token_obj = modt.Token()
@@ -103,6 +105,8 @@ class TestTokenModel(unittest.TestCase):
self.assertEqual(token_obj.is_get_token, 1)
self.assertEqual(token_obj.is_delete_token, 1)
self.assertEqual(token_obj.is_post_token, 1)
+ self.assertEqual(token_obj.is_test_lab_token, 0)
+ self.assertEqual(token_obj.is_lab_token, 0)
def test_token_is_superuser(self):
token_obj = modt.Token()
@@ -114,12 +118,22 @@ class TestTokenModel(unittest.TestCase):
self.assertEqual(token_obj.is_get_token, 1)
self.assertEqual(token_obj.is_delete_token, 1)
self.assertEqual(token_obj.is_post_token, 1)
+ self.assertEqual(token_obj.is_test_lab_token, 0)
+ self.assertEqual(token_obj.is_lab_token, 0)
def test_token_is_lab_token(self):
token_obj = modt.Token()
token_obj.is_lab_token = 1
self.assertEqual(token_obj.is_lab_token, 1)
+ self.assertEqual(token_obj.is_test_lab_token, 0)
+
+ def test_token_is_test_lab_token(self):
+ token_obj = modt.Token()
+ token_obj.is_test_lab_token = 1
+
+ self.assertEqual(token_obj.is_lab_token, 0)
+ self.assertEqual(token_obj.is_test_lab_token, 1)
def test_token_wrong_numeric_value(self):
token_obj = modt.Token()
diff --git a/app/models/token.py b/app/models/token.py
index 42357a0..6a008f9 100644
--- a/app/models/token.py
+++ b/app/models/token.py
@@ -57,6 +57,7 @@ class Token(modb.BaseDocument):
- 6: if the token can create new tokens
- 7: if the token is a boot lab token
- 8: if the token can upload (POST/PUT) files
+ - 9: if the token is a test lab token
"""
def __init__(self):
@@ -312,6 +313,17 @@ class Token(modb.BaseDocument):
value = check_attribute_value(value)
self._properties[8] = value
+ @property
+ def is_test_lab_token(self):
+ """If the token can be used to upload test results."""
+ return self._properties[9]
+
+ @is_test_lab_token.setter
+ def is_test_lab_token(self, value):
+ """Set if the token can be used to upload test results."""
+ value = check_attribute_value(value)
+ self._properties[9] = value
+
def is_valid_ip(self, address):
"""Check if an IP address is valid for a token.