this test failsnaturallybecause we aren' importing vigenerecipher class anywhere let' create new module to hold that class let' start with the following vigenerecipher classclass vigenerecipherdef __init__(selfkeyword)self keyword keyword def encode(selfplaintext)return "xecwqxuivcrkhwaif we add from vigenere_cipher import vigenerecipher line to the top of our test class and run py testthe preceding test will passwe've finished our first test-driven development cycle obviouslyreturning hardcoded string is not the most sensible implementation of cipher classso let' add second testdef test_encode_character()cipher vigenerecipher("train"encoded cipher encode(" "assert encoded ="xahnow that test will fail it looks like we're going to have to work harder but just thought of somethingwhat if someone tries to encode string with spaces or lowercase charactersbefore we start implementing the encodinglet' add some tests for these casesso we don' we forget them the expected behavior will be to remove spacesand to convert lowercase letters to capitalsdef test_encode_spaces()cipher vigenerecipher("train"encoded cipher encode("encoded in python"assert encoded ="xecwqxuivcrkhwadef test_encode_lowercase()cipher vigenerecipher("train"encoded cipher encode("encoded in python"assert encoded ="xecwqxuivcrkhwaif we run the new test suitewe find that the new tests pass (they expect the same hardcoded stringbut they ought to fail later if we forget to account for these cases