def test_committee_meeting_protocols(self):
# protocols only support appending
resource = CommitteeMeetingProtocolsResource("committee-meeting-protocols", self.given_temporary_data_root())
committee_id, meeting_id, meeting_datetime = 6, 7, datetime.datetime(1953,5,4)
# a contextmanager for mock protocol
@contextlib.contextmanager
def meeting_protocol():
yield type("MockProtocol", (object,), {"text": "Hello World!",
"parts": [type("MockProtocolPart", (object,), {"header": "mock header", "body": "mock body"}),
type("MockProtocolPart", (object,), {"header": "mock header 2", "body": "mock body 2"})],
"file_name": ""})
# appending using the fake protocol
resource.append_for_meeting(committee_id, meeting_id, meeting_datetime, meeting_protocol(), skip_exceptions=True)
# checking the created files
with open(resource.get_file_path(".csv")) as f:
self.assertEqual(list(unicodecsv.reader(f.readlines())),
[['committee_id', 'meeting_id', 'text',
'parts',
'original',
'scraper_errors'],
['6', '7', 'committee_6/7_1953-05-04_00-00-00/protocol.txt',
'committee_6/7_1953-05-04_00-00-00/protocol.csv', '',
"error getting original file: [Errno 2] No such file or directory: ''"]])
with open(resource.get_path("committee_6", "7_1953-05-04_00-00-00", "protocol.txt")) as f:
self.assertEqual(f.readlines(), ["Hello World!"])
with open(resource.get_path("committee_6", "7_1953-05-04_00-00-00", "protocol.csv")) as f:
self.assertEqual(f.readlines(), ['header,body\r\n', 'mock header,mock body\r\n', 'mock header 2,mock body 2\r\n'])
评论列表
文章目录