113
114
display_type = parameters.get('display_type', 'all')
114
115
if display_type not in SUPPORTED_DISPLAY_TYPES:
115
116
raise UnsupportedDisplayType
117
if 'date_range' in parameters:
119
start_date, end_date = parameters['date_range'].split('..')
121
raise UnparsableDateRange()
116
122
new_messages = []
117
123
for message in messages:
118
124
if (not parameters['include_hidden'] and message['hidden']):
120
126
if ('message_ids' in parameters
121
127
and message['message_id'] not in parameters['message_ids']):
129
if ('date_range' in parameters
130
and (message['date'] < start_date
131
or message['date'] > end_date)):
123
133
message = dict(message)
124
134
if 'headers' in parameters:
534
544
self.assertEqual('you', first_message['headers']['To'])
535
545
self.assertEqual(
536
546
'abcdefghi\n\nattactment data.', first_message['body'])
548
def test_date_range(self):
549
client = GrackleClient('localhost', 8448)
553
'foo', 'abcdefghi', headers={'date': '2011-12-31'}),
555
'bar', 'abcdefghi', headers={'date': '2012-01-01'}),
557
'qux', 'abcdefghi', headers={'date': '2012-01-15'}),
559
'naf', 'abcdefghi', headers={'date': '2012-01-31'}),
561
'doh', 'abcdefghi', headers={'date': '2012-02-01'}),
563
with ForkedFakeService.from_client(client, archive):
564
response = client.get_messages(
565
'baz', date_range='2012-01-01..2012-01-31')
566
ids = sorted(m['message_id'] for m in response['messages'])
567
self.assertEqual(['bar', 'naf', 'qux'], ids)