from habitmove.parser import Parser from inspect import signature def test_parser_interface_exists(): sut = Parser() assert type(sut) == Parser def test_parser_interface_contains_methods(): sut = Parser() assert sut.__getattribute__("parse") != None assert sut.__getattribute__("from_file") != None assert sut.__getattribute__("extract_version") != None assert sut.__getattribute__("extract_trackers") != None assert sut.__getattribute__("extract_events") != None def test_parser_from_file_returns_parser(): sut = Parser().from_file assert signature(sut).return_annotation == "Parser" def test_parser_parse_returns_Import_Data(): sut = Parser().parse assert signature(sut).return_annotation == "ImportData" def test_parser_version_returns_String(): sut = Parser().extract_version assert signature(sut).return_annotation == "str" def test_parser_extract_trackers_returns_tracker_list(): sut = Parser().extract_trackers assert signature(sut).return_annotation == "list[Tracker]" def test_parser_extract_events_returns_event_list(): sut = Parser().extract_events assert signature(sut).return_annotation == "list[Event]"