~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/tests/test_client.py

  • Committer: Curtis Hovey
  • Date: 2012-02-14 21:55:15 UTC
  • Revision ID: curtis.hovey@canonical.com-20120214215515-vu1zn9n58ov659es
Added basic handling of date_range.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
from grackle.client import (
22
22
    GrackleClient,
 
23
    UnparsableDateRange,
23
24
    UnsupportedDisplayType,
24
25
    UnsupportedOrder,
25
26
    )
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:
 
118
            try:
 
119
                start_date, end_date = parameters['date_range'].split('..')
 
120
            except:
 
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']):
122
128
                continue
 
129
            if ('date_range' in parameters
 
130
                and (message['date'] < start_date
 
131
                     or message['date'] > end_date)):
 
132
                continue
123
133
            message = dict(message)
124
134
            if 'headers' in parameters:
125
135
                headers = dict(
534
544
        self.assertEqual('you', first_message['headers']['To'])
535
545
        self.assertEqual(
536
546
            'abcdefghi\n\nattactment data.', first_message['body'])
 
547
 
 
548
    def test_date_range(self):
 
549
        client = GrackleClient('localhost', 8448)
 
550
        archive = {
 
551
            'baz': [
 
552
                make_mime_message(
 
553
                    'foo', 'abcdefghi', headers={'date': '2011-12-31'}),
 
554
                make_mime_message(
 
555
                    'bar', 'abcdefghi', headers={'date': '2012-01-01'}),
 
556
                make_mime_message(
 
557
                    'qux', 'abcdefghi', headers={'date': '2012-01-15'}),
 
558
                make_mime_message(
 
559
                    'naf', 'abcdefghi', headers={'date': '2012-01-31'}),
 
560
                make_mime_message(
 
561
                    'doh', 'abcdefghi', headers={'date': '2012-02-01'}),
 
562
                    ]}
 
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)