Improve string encoding for password retrieval
- Prevent the password from displaying as b'...' in the app; - Use Flask's `get_data(as_test=True)` to read the data, in the tests; - Add test to ensure `get_password` is not returning bytes.
This commit is contained in:
parent
c0ec6dbec2
commit
a46fc40aa3
2 changed files with 8 additions and 1 deletions
|
@ -31,6 +31,8 @@ def set_password(password, ttl):
|
||||||
|
|
||||||
def get_password(key):
|
def get_password(key):
|
||||||
password = redis_client.get(key)
|
password = redis_client.get(key)
|
||||||
|
if password is not None:
|
||||||
|
password = password.decode('utf-8')
|
||||||
redis_client.delete(key)
|
redis_client.delete(key)
|
||||||
return password
|
return password
|
||||||
|
|
||||||
|
|
7
tests.py
7
tests.py
|
@ -23,6 +23,11 @@ class SnapPassTestCase(TestCase):
|
||||||
# Assert that we can't look this up a second time.
|
# Assert that we can't look this up a second time.
|
||||||
self.assertEqual(None, snappass.get_password(key))
|
self.assertEqual(None, snappass.get_password(key))
|
||||||
|
|
||||||
|
def test_password_is_decoded(self):
|
||||||
|
password = "correct horse battery staple"
|
||||||
|
key = snappass.set_password(password, 30)
|
||||||
|
self.assertFalse(isinstance(snappass.get_password(key), bytes))
|
||||||
|
|
||||||
def test_clean_input(self):
|
def test_clean_input(self):
|
||||||
# Test Bad Data
|
# Test Bad Data
|
||||||
with snappass.app.test_request_context(
|
with snappass.app.test_request_context(
|
||||||
|
@ -54,7 +59,7 @@ class SnapPassRoutesTestCase(TestCase):
|
||||||
password = "I like novelty kitten statues!"
|
password = "I like novelty kitten statues!"
|
||||||
key = snappass.set_password(password, 30)
|
key = snappass.set_password(password, 30)
|
||||||
rv = self.app.get('/{}'.format(key))
|
rv = self.app.get('/{}'.format(key))
|
||||||
self.assertIn(password, rv.data)
|
self.assertIn(password, rv.get_data(as_text=True))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in a new issue