def test_stdin_random_error(self, mocker, capsys): mock = mocker.patch('scram.scrammer.input', side_effect=TypeError('random')) scrammer.main([]) assert mock.call_count == 1 captured = capsys.readouterr().err assert captured.strip() == 'random'
def test_multi_stdin_mode_no_gen_salt(self, mocker): mocker.patch('scram.scrammer.input', side_effect=['pencil'] * 10 + ['']) mocked_salter = mocker.patch('scram.scrammer.gen_salt', return_value=self.SALT) scrammer.main(['-s', '1234']) assert mocked_salter.call_count == 0
def test_stdin_pencil_to_stdout(self, mocker, capsys): mocked_input = mocker.patch('scram.scrammer.input') mocked_input.side_effect = ['pencil', ''] scrammer.main(['-s', self.PENCIL_SALT]) assert mocked_input.call_count == 2 out = capsys.readouterr().out line = out.split()[0] assert line == self.PENCIL_HEX
def test_stdin_pencil_to_file(self, mocker, tmp_path): mocked_input = mocker.patch('scram.scrammer.input') mocked_input.side_effect = ['pencil', ''] file = tmp_path / 'stdin_one.txt' scrammer.main(['-s', self.PENCIL_SALT, '-o', str(file)]) assert os.path.exists(file) with open(file) as content: line = content.read().split()[0] assert line == self.PENCIL_HEX
def test_pencil_hashcat(self, capsys): """ test pencil with hashcat output """ scrammer_args = [ 'pencil', '-s', 'QSXCR+Q6sek8bf92', '--format', 'hashcat' ] scrammer.main(scrammer_args) captured = capsys.readouterr() out = captured.out assert out.strip( ) == '4096:QSXCR+Q6sek8bf92:6dlGYMOdZcOPutkcNY8U2g7vK9Y='
def test_stdin_multiple_to_stdout(self, mocker, capsys): """ tests for interactive input """ mocked_input = mocker.patch('scram.scrammer.input') mocked_input.side_effect = ['pencil', 'pencil', ''] scrammer.main(['-s', self.PENCIL_SALT]) assert mocked_input.call_count == 3 captured = capsys.readouterr() out = captured.out lines = [line for line in out.split() if line != ''] for line in lines: assert line == self.PENCIL_HEX
def test_small_dictionary(self, capsys): file_path = RESOURCES / 'small_dictionary.txt' scrammer_args = ['-f', str(file_path), '-s', '1234', '--format', 'hex'] scrammer.main(scrammer_args) captured = capsys.readouterr() out = captured.out correct = [ 'c89a8efabda245d57e178bbf1b23a0fb282301f7', '7bcc94a7fad21b166a46ea5f6e7ace3a53f83583', '1907d2a38a46200722a30e9f2c3c20edf20a051e', 'd63705b127777e7aa8ace460a5aa1c6a91051a55', '29a7bca35ab4817e9460506912c1d3e69c8efcb0' ] for ind, line in enumerate(out.split()): line = line.strip() assert line == correct[ind]
def test_pencil_b64(self, capsys): scrammer_args = ['pencil', '-s', 'QSXCR+Q6sek8bf92', '--format', 'b64'] scrammer.main(scrammer_args) captured = capsys.readouterr() out = captured.out assert out.strip() == '6dlGYMOdZcOPutkcNY8U2g7vK9Y='
def test_pencil_hex(self, capsys): scrammer_args = ['pencil', '-s', 'QSXCR+Q6sek8bf92', '--format', 'hex'] scrammer.main(scrammer_args) captured = capsys.readouterr() out = captured.out assert out.strip() == 'e9d94660c39d65c38fbad91c358f14da0eef2bd6'
def test_stdin_keyboard_interrupt(self, mocker): mock = mocker.patch('scram.scrammer.input', side_effect=KeyboardInterrupt('inter')) scrammer.main([]) assert mock.call_count == 1
def test_stdin_eof(self, mocker): mock = mocker.patch('scram.scrammer.input', side_effect=EOFError('eof')) scrammer.main([]) assert mock.call_count == 1
def test_one_stdin_mode_gen_salt(self, mocker): mocker.patch('scram.scrammer.input', side_effect=['pencil', '']) mocked_salter = mocker.patch('scram.scrammer.gen_salt', return_value=self.SALT) scrammer.main([]) assert mocked_salter.call_count == 1
def test_file_mode_no_gen_salt(self, mocker): mocked_salter = mocker.patch('scram.scrammer.gen_salt', return_value=self.SALT) file_path = RESOURCES / 'small_dictionary.txt' scrammer.main(['-f', str(file_path), '-s', '1234']) assert mocked_salter.call_count == 0
def test_file_mode_gen_salt(self, mocker): mocked_salter = mocker.patch('scram.scrammer.gen_salt', return_value=self.SALT) file_path = RESOURCES / 'small_dictionary.txt' scrammer.main(['-f', str(file_path)]) assert mocked_salter.call_count == len(TestScriptOutput.SMALL_DICT_HEX)
def test_single_mode_no_gen_salt(self, mocker): mocked_salter = mocker.patch('scram.scrammer.gen_salt', return_value=self.SALT) scrammer.main(['hello', '-s', self.SALT]) assert mocked_salter.call_count == 0