From ea2dca00d5ffff36b416b1343948e85b6bf83907 Mon Sep 17 00:00:00 2001 From: Tom Shore Date: Tue, 20 Aug 2019 14:17:15 +0100 Subject: [PATCH 1/3] test to see if you can encode and decode an email and password --- resources/test/test_NetflixCredentials.py | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 resources/test/test_NetflixCredentials.py diff --git a/resources/test/test_NetflixCredentials.py b/resources/test/test_NetflixCredentials.py new file mode 100644 index 000000000..dddf412cf --- /dev/null +++ b/resources/test/test_NetflixCredentials.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Module: NetflixCredentials +# Author: tomjshore +# Created on: 20.08.2019 +# License: MIT https://goo.gl/5bMj3H + +"""Testing for NetflixCredentials""" + +import unittest +from resources.lib.NetflixCredentials import NetflixCredentials + +class NetflixCredentialsTestCase(unittest.TestCase): + + def test_can_encode_and_decode_email_and_pass(self): + email = 'tom' + password = 'rubbish password' + cred = NetflixCredentials() + encoded = cred.encode_credentials(email, password) + decoded = cred.decode_credentials(encoded['email'], encoded['password']) + + self.assertEqual(email, decoded['email']) + self.assertEqual(password, decoded['password']) + self.assertNotEqual(email, encoded['email']) + self.assertNotEqual(password, encoded['password']) From b5385589826e4ed7600a82d674d3d35f964f42e6 Mon Sep 17 00:00:00 2001 From: Tom Shore Date: Tue, 20 Aug 2019 14:28:22 +0100 Subject: [PATCH 2/3] tests for empty string validation, change if statment in NetflixCredentials from OR to AND --- resources/lib/NetflixCredentials.py | 2 +- resources/test/test_NetflixCredentials.py | 29 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/resources/lib/NetflixCredentials.py b/resources/lib/NetflixCredentials.py index 2ebbe41e1..4b740eb02 100644 --- a/resources/lib/NetflixCredentials.py +++ b/resources/lib/NetflixCredentials.py @@ -21,7 +21,7 @@ def encode_credentials(self, email, password): The users stored account data """ # if everything is fine, we encode the values - if '' != email or '' != password: + if '' != email and '' != password: return { 'email': self.encode(raw=email), 'password': self.encode(raw=password) diff --git a/resources/test/test_NetflixCredentials.py b/resources/test/test_NetflixCredentials.py index dddf412cf..281540f9a 100644 --- a/resources/test/test_NetflixCredentials.py +++ b/resources/test/test_NetflixCredentials.py @@ -22,3 +22,32 @@ def test_can_encode_and_decode_email_and_pass(self): self.assertEqual(password, decoded['password']) self.assertNotEqual(email, encoded['email']) self.assertNotEqual(password, encoded['password']) + + def test_empty_email_will_not_encode(self): + email = '' + password = 'rubbish password' + cred = NetflixCredentials() + encoded = cred.encode_credentials(email, password) + + self.assertEqual('', encoded['email']) + self.assertEqual('', encoded['password']) + + def test_empty_password_will_not_encode(self): + email = 'tom' + password = '' + cred = NetflixCredentials() + encoded = cred.encode_credentials(email, password) + + self.assertEqual('', encoded['email']) + self.assertEqual('', encoded['password']) + + def test_empty_email_and_password_will_not_encode(self): + email = '' + password = '' + cred = NetflixCredentials() + encoded = cred.encode_credentials(email, password) + + self.assertEqual('', encoded['email']) + self.assertEqual('', encoded['password']) + + From faa6b95b66c2642a5a10c1a2b03e0c11e779dfc0 Mon Sep 17 00:00:00 2001 From: Tom Shore Date: Tue, 20 Aug 2019 16:58:26 +0100 Subject: [PATCH 3/3] test string validation on decode and corrected if statment to use AND instead of OR --- resources/lib/NetflixCredentials.py | 2 +- resources/test/test_NetflixCredentials.py | 27 ++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/resources/lib/NetflixCredentials.py b/resources/lib/NetflixCredentials.py index 4b740eb02..82c479c92 100644 --- a/resources/lib/NetflixCredentials.py +++ b/resources/lib/NetflixCredentials.py @@ -42,7 +42,7 @@ def decode_credentials(self, email, password): The users stored account data """ # if everything is fine, we decode the values - if (email and '' != email) or (password and '' != password): + if (email and '' != email) and (password and '' != password): return { 'email': self.decode(enc=email), 'password': self.decode(enc=password) diff --git a/resources/test/test_NetflixCredentials.py b/resources/test/test_NetflixCredentials.py index 281540f9a..fbb1b51d8 100644 --- a/resources/test/test_NetflixCredentials.py +++ b/resources/test/test_NetflixCredentials.py @@ -11,7 +11,7 @@ class NetflixCredentialsTestCase(unittest.TestCase): - def test_can_encode_and_decode_email_and_pass(self): + def test_can_encode_and_decode_email_and_password(self): email = 'tom' password = 'rubbish password' cred = NetflixCredentials() @@ -50,4 +50,29 @@ def test_empty_email_and_password_will_not_encode(self): self.assertEqual('', encoded['email']) self.assertEqual('', encoded['password']) + def test_empty_email_will_not_decode(self): + cred = NetflixCredentials() + email = '' + password = cred.encode('rubbish password') + decoded = cred.decode_credentials(email, password) + + self.assertEqual('', decoded['email']) + self.assertEqual('', decoded['password']) + + def test_empty_password_will_not_decode(self): + cred = NetflixCredentials() + email = cred.encode('tom') + password = '' + decoded = cred.decode_credentials(email, password) + + self.assertEqual('', decoded['email']) + self.assertEqual('', decoded['password']) + + def test_empty_email_and_password_will_not_decode(self): + cred = NetflixCredentials() + email = '' + password = '' + decoded = cred.decode_credentials(email, password) + self.assertEqual('', decoded['email']) + self.assertEqual('', decoded['password'])