def test_03_generate_key(self): playfair_key = PlayFairKey() # when invalid keying material supplied, don't set keying material with self.assertRaises(ValueError): playfair_key.generate_key("Invalid KEY!") self.assertIsNone(playfair_key._keying_material) # check function sets correct key and keying_material values self.assertEqual(playfair_key._keying_material, None) playfair_key.generate_key("example key example ij") self.assertEqual(playfair_key._keying_material, "examplekeyexamplei") self.assertEqual(playfair_key._key, "examplkyibcdfghnoqrstuvwz") # check that the tableaus are correct tableau_row = [ ["e", "x", "a", "m", "p"], ["l", "k", "y", "i", "b"], ["c", "d", "f", "g", "h"], ["n", "o", "q", "r", "s"], ["t", "u", "v", "w", "z"], ] self.assertEqual(playfair_key._tableau_row, tableau_row) tableau_col = [ ["e", "l", "c", "n", "t"], ["x", "k", "d", "o", "u"], ["a", "y", "f", "q", "v"], ["m", "i", "g", "r", "w"], ["p", "b", "h", "s", "z"], ] self.assertEqual(playfair_key._tableau_col, tableau_col)
def test_08_print_tableau(self): playfair_key = PlayFairKey() # when generate_key hasn't been called, the tableau can't be printed with self.assertRaises(ValueError): playfair_key.print_tableau() # after a key is generated, calls to print_tableau shouldn't fail playfair_key.generate_key("") playfair_key.print_tableau() playfair_key.generate_key("playfair example") playfair_key.print_tableau()
def test_10_char_location(self): playfair_key = PlayFairKey() playfair_key.generate_key("abcde") # first char cl = playfair_key.char_location("a") self.assertEqual(cl.row, 0) self.assertEqual(cl.col, 0) # char at the end of the first row cl = playfair_key.char_location("e") self.assertEqual(cl.row, 0) self.assertEqual(cl.col, 4) # char at the center of the second row cl = playfair_key.char_location("h") self.assertEqual(cl.row, 1) self.assertEqual(cl.col, 2)
def test_09_key_valid(self): playfair_key = PlayFairKey() # initially, the key should be invalid self.assertFalse(playfair_key.valid) # when a (valid) key is generated, it should be valid playfair_key.generate_key("asdf") self.assertTrue(playfair_key.valid) # if another (valid) key is generated, it should still be valid playfair_key.generate_key("qwerty") self.assertTrue(playfair_key.valid) # if then an invalid key is generated, it should be invalid with self.assertRaises(ValueError): # invalid key generates exception playfair_key.generate_key("invalid!") self.assertFalse(playfair_key.valid)