Пример #1
0
 def test_exceeds_max_personality_size(self):
     """
     Fails when size of decoded content in personality exceeds max limit
     """
     self.personality[0]["contents"] = base64.b64encode("abc" * 30)
     d = validate_personality(self.log, "token", "endpoint", self.personality)
     f = self.failureResultOf(d, InvalidFileContentSize)
     self.assertEqual(f.value.message, 'File "/etc/banner.txt" content\'s size exceeds maximum size "35"')
Пример #2
0
 def test_exceeds_max_personality(self):
     """
     Fails when number of files in personality exceeds max limit
     """
     self.personality.append({"path": "/somepath", "contents": self.personality[0]["contents"]})
     d = validate_personality(self.log, "token", "endpoint", self.personality)
     f = self.failureResultOf(d, InvalidMaxPersonality)
     self.assertEqual(f.value.message, 'Number of files "2" in personality exceeds maximum limit "1"')
Пример #3
0
 def test_invalid_base64_chars(self):
     """
     Fails when content is having non-base64 characters but is valid encoding
     """
     self.personality[0]["contents"] = "()()"
     d = validate_personality(self.log, "token", "endpoint", self.personality)
     f = self.failureResultOf(d, InvalidBase64Encoding)
     self.assertEqual(f.value.message, 'Invalid base64 encoding for contents of path "/etc/banner.txt"')
Пример #4
0
 def test_invalid_base64_encoding(self):
     """
     Fails when content is not base64 encoded
     """
     self.personality[0]["contents"] = "bad encoding"
     d = validate_personality(self.log, "token", "endpoint", self.personality)
     f = self.failureResultOf(d, InvalidBase64Encoding)
     self.assertEqual(f.value.message, 'Invalid base64 encoding for contents of path "/etc/banner.txt"')
Пример #5
0
 def test_valid(self):
     """
     Succeeds if given personality is valid
     """
     self.headers["x-auth-token"] = ["token"]
     d = validate_personality(self.log, "token", "endpoint", self.personality)
     self.successResultOf(d)
     self.treq.get.assert_called_once_with("endpoint/limits", headers=self.headers)
Пример #6
0
 def test_valid(self):
     """
     Succeeds if given personality is valid
     """
     self.headers['x-auth-token'] = ['token']
     d = validate_personality(self.log, 'token', 'endpoint', self.personality)
     self.successResultOf(d)
     self.treq.get.assert_called_once_with(
         'endpoint/limits', headers=self.headers, log=self.log)
Пример #7
0
 def test_exceeds_max_personality(self):
     """
     Fails when number of files in personality exceeds max limit
     """
     self.personality.append(
         {'path': '/somepath', 'contents': self.personality[0]['contents']})
     d = validate_personality(self.log, 'token', 'endpoint', self.personality)
     f = self.failureResultOf(d, InvalidMaxPersonality)
     self.assertEqual(
         f.value.message,
         'Number of files "2" in personality exceeds maximum limit "1"')
Пример #8
0
 def test_limit_failure_succeeds(self):
     """
     If getting /limits fails, then it logs and just validates base64
     encoding and succeed
     """
     self.treq.get.return_value = defer.succeed(mock.Mock(code=500))
     d = validate_personality(self.log, 'token', 'endpoint', self.personality)
     self.successResultOf(d)
     self.log.msg.assert_called_once_with(
         'Skipping personality size checks due to limits error',
         reason=CheckFailure(RequestError))