import pytest import thefuck.const as const from thefuck.types import CorrectedCommand from thefuck.statistics import CommandRecords class TestCommandRecords(): def test_default(self): default = const.DEFAULT_RECORDS_DICT assert CommandRecords().statistics == default def test_clear_records(self): default = const.DEFAULT_RECORDS_DICT records = CommandRecords() records.statistics = {"not clear": "value"} records.clear_records() assert records.statistics == default assert not records.statistics == {"not clear": "value"} def test_add_applied_rules(self): records = CommandRecords() commands = [ CorrectedCommand('ls', None, 100), CorrectedCommand('git init', None, 200), CorrectedCommand('fuck', None, 300)] records.add_records(const.APPLIED_RULES, command_list = commands) assert records.statistics[const.APPLIED_RULES]['ls'] == 1 assert records.statistics[const.APPLIED_RULES]['git init'] == 1 assert records.statistics[const.APPLIED_RULES]['fuck'] == 1 records.add_records(const.APPLIED_RULES, command_list = commands) assert records.statistics[const.APPLIED_RULES]['ls'] == 2 assert records.statistics[const.APPLIED_RULES]['git init'] == 2 assert records.statistics[const.APPLIED_RULES]['fuck'] == 2 records.clear_records() def test_add_selected_rules(self): records = CommandRecords() command = CorrectedCommand('ls', None, 100) records.add_records(const.SELECTED_RULES, command_single = command) assert records.statistics[const.SELECTED_RULES]['ls'] == 1 records.add_records(const.SELECTED_RULES, command_single = command) assert records.statistics[const.SELECTED_RULES]['ls'] == 2 records.clear_records() def test_add_no_fucks_given(self): records = CommandRecords() records.clear_records() records.add_records(const.NO_FUCKS_GIVEN) assert records.statistics[const.NO_FUCKS_GIVEN] == 1 records.add_records(const.NO_FUCKS_GIVEN) assert records.statistics[const.NO_FUCKS_GIVEN] == 2 records.clear_records()