Skip to content

Instantly share code, notes, and snippets.

@idjaw

idjaw/pebkac Secret

Created December 8, 2016 21:47
Show Gist options
  • Save idjaw/fa33e36f1a018fd3c068bb1a0b381ec4 to your computer and use it in GitHub Desktop.
Save idjaw/fa33e36f1a018fd3c068bb1a0b381ec4 to your computer and use it in GitHub Desktop.
pebkac
from textwrap import dedent
from unittest import TestCase
from unittest.mock import patch, mock_open
from day_seven.part_one import is_valid_tls, valid_accumulator
mock_data = dedent("""abba[mnop]qrst
abcd[bddb]xyyx
aaaa[qwer]tyui
aaaa[qwer]tyui
ioxxoj[asdfgh]zxcvbn
""")
class TestValidTLS(TestCase):
def test_abba_outside_brackes_supports_tls(self):
self.assertTrue(is_valid_tls('abba[mnop]qrst'))
self.assertTrue(is_valid_tls('abcd[abcd]xyyx'))
def test_is_valid_tls(self):
self.assertTrue(is_valid_tls("abba[mnop]qrst"))
def test_is_invalid_tls_d(self):
self.assertFalse(is_valid_tls("ab[mnop]bast"))
def test_is_invalid_tls_a(self):
self.assertFalse(is_valid_tls("abcd[bddb]xyyx"))
def test_is_invalid_tls_b(self):
self.assertFalse(is_valid_tls("aaaa[qwer]tyui"))
def test_is_invalid_tls_c(self):
self.assertFalse(is_valid_tls("abcd[abddbgg]xyyx"))
def test_is_valid_tls_b(self):
self.assertTrue(is_valid_tls("ioxxoj[asdfgh]zxcvbn"))
def test_is_invalid_tls(self):
self.assertFalse(is_valid_tls("abba[mnop]a[qeabbars]xysd"))
def test_is_valid_tls_c(self):
self.assertTrue(is_valid_tls("aabbaa[mnop]a[cftr]xysd"))
class GetTotalValidTLS(TestCase):
@patch('builtins.open', mock_open(read_data=mock_data))
def test_get_total_valid_tls(self):
self.assertEqual(2, valid_accumulator('some_file'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment