diff options
author | Milo Casagrande <milo.casagrande@linaro.org> | 2015-03-05 15:26:58 +0100 |
---|---|---|
committer | Milo Casagrande <milo.casagrande@linaro.org> | 2015-03-05 15:26:58 +0100 |
commit | 431f7b23808dccacb88c48c20b0826b543460d54 (patch) | |
tree | 7a7fe47421f3dd0c4fb15ad9de75b2d4f9af1c51 | |
parent | 57059b319774bb6bb5bc81e3442326eb80d76880 (diff) |
Add logic for test lab token.
-rw-r--r-- | app/handlers/token.py | 6 | ||||
-rw-r--r-- | app/models/__init__.py | 7 | ||||
-rw-r--r-- | app/models/tests/test_token_model.py | 14 | ||||
-rw-r--r-- | app/models/token.py | 12 |
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. |