class TrunkNotesParser: """ Insert docstring here """ def __init__(self): """ Insert docstring here """ self.headers = Headers(TitleHeader(), TimestampHeader(), LastAccessedHeader(), TimesAccessedHeader(), TagsHeader(), MetadataHeader()) self.body = '' def parse_content(self, input_data): """ Insert docstring here """ metadata = join(input_data.splitlines()[0:6], '\n') self.body = join(input_data.splitlines(True)[6:], '') self.headers.read(metadata) def parse_file(self, file_path): """ Insert docstring here """ try: note_file = open(file_path) input_data = note_file.read() note_file.close() except IOError as errno: # No such directory Error if errno.args[0] == 2: # will be replace once code is ready for input checkecking pass ## is a directory ERROR if errno.args[0] == 21: # will be replace once code is ready for input checkecking pass else: return self.parse_content(input_data) def dump_note(self, note_path): """ Insert docstring here """ output_data = self.headers.write() + self.body # create the file with open(note_path.__str__(), 'w') as note_file: # write to the file note_file.write(output_data)
def test_headers_read(): """ Insert docstring here """ sample_input_data = """\ Title: HelloWorld Timestamp: 2010-11-18 18:10:33 -0500 Last Accessed: 2010-11-19 20:02:28 -0500 Times Accessed: 24 Tags: Metadata: """ # Instantiate mock objects title_header = Mock(['read'], name='title_header') timestamp_header = Mock(['read'], name='timestamp_header') last_accessed_header = Mock(['read'], name='last_accessed_header') times_accessed_header = Mock(['read'], name='times_accessed_header') tags_header = Mock(['read'], name='tags_header') metadata_header = Mock(['read'], name='metadata_header') # Instantiate object under tests (headers) headers = Headers(title_header, timestamp_header, last_accessed_header, times_accessed_header, tags_header, metadata_header) # Call method under test headers.read(sample_input_data) # Test that the headers' read was called once and # That the parameters they received are correct title_header.read.assert_called_once_with('Title: HelloWorld') timestamp_header.read.assert_called_once_with( 'Timestamp: 2010-11-18 18:10:33 -0500') last_accessed_header.read.assert_called_once_with( 'Last Accessed: 2010-11-19 20:02:28 -0500') times_accessed_header.read.assert_called_once_with('Times Accessed: 24') tags_header.read.assert_called_once_with('Tags:') metadata_header.read.assert_called_once_with('Metadata:')