Exemple #1
0
 def test_offset_and_limit(self):
     for i in range(1, 11):
         self.make_source(u"http://example.com/feed%s" % i)
     response = self.app.get_json('/v1/sources?offset=5&limit=3',
                                  headers=self.PROVIDER_ID_HEADER)
     collection = response['collection']
     items = collection['items']
     self.assertEqual(collection['total_count'], 10)
     self.assertEqual(len(items), 3)
     self.assertEqual(collection['current_count'], 3)
     self.assertEqual(data_list_to_dict(items[0]['data'])['url'],
                      'http://example.com/feed6')
     self.assertEqual(data_list_to_dict(items[-1]['data'])['url'],
                      'http://example.com/feed8')
Exemple #2
0
 def test_unique_values(self):
     data_list = [
         {u'name': u'title',
          u'value': u'Titre \xc9v\xe9nement'}
     ]
     expected_dict = {u'title': u'Titre \xc9v\xe9nement'}
     self.assertEqual(data_list_to_dict(data_list), expected_dict)
Exemple #3
0
 def test_post_publication_times(self):
     response = self.app.post_json('/v1/events', {
         'template': {
             'data': [
                 {
                     'name': 'title',
                     'value': u'Événement'
                 },
                 {
                     'name': u'start_time',
                     'value': u'2014-01-25T15:00'
                 },
                 {
                     'name': u'end_time',
                     'value': u'2014-01-25T15:00'
                 },
                 {
                     'name': 'publication_start',
                     'value': u'2014-01-25T16:00'
                 },
                 {
                     'name': 'publication_end',
                     'value': u'2014-01-25T17:00'
                 },
             ]
         }
     },
                                   headers=self.WRITE_HEADERS)
     event_data = data_list_to_dict(
         response.json['collection']['items'][0]['data'])
     event_id = event_data['id']
     event = Event.get_by_id(event_id)
     self.assertEqual(event.publication_start, datetime(2014, 1, 25, 16))
     self.assertEqual(event.publication_end, datetime(2014, 1, 25, 17))
Exemple #4
0
 def test_offset_and_limit(self):
     for i in range(1, 11):
         self.make_source(u"http://example.com/feed%s" % i)
     response = self.app.get_json('/v1/sources?offset=5&limit=3',
                                  headers=self.PROVIDER_ID_HEADER)
     collection = response['collection']
     items = collection['items']
     self.assertEqual(collection['total_count'], 10)
     self.assertEqual(len(items), 3)
     self.assertEqual(collection['current_count'], 3)
     self.assertEqual(
         data_list_to_dict(items[0]['data'])['url'],
         'http://example.com/feed6')
     self.assertEqual(
         data_list_to_dict(items[-1]['data'])['url'],
         'http://example.com/feed8')
Exemple #5
0
    def post_event(self, event_info=None, headers=None):
        if headers is None:
            headers = {'X-ODE-Provider-Id': '123'}
        if event_info is None:
            event_info = [
                {'name': 'title', 'value': u'Titre Événement'},
            ]
        for mandatory in ('start_time', 'end_time', 'publication_start',
                          'publication_end'):
            if mandatory not in [field['name'] for field in event_info]:
                event_info.append({
                    'name': mandatory,
                    'value': '2014-01-25T15:00:00',
                })

        body_data = {
            'template': {
                'data': event_info
            }
        }
        created = 201
        headers['content-type'] = 'application/vnd.collection+json'
        response = self.app.post_json('/v1/events', body_data,
                                      headers=headers,
                                      status=created)
        data_dict = data_list_to_dict(
            response.json['collection']['items'][0]['data'])
        return data_dict['id']
Exemple #6
0
 def test_valid_offset(self):
     for i in range(1, 11):
         self.make_source(u"http://example.com/feed%s" % i)
     response = self.app.get_json('/v1/sources?offset=5',
                                  headers=self.PROVIDER_ID_HEADER)
     item = response['collection']['items'][0]
     self.assertEqual(
         data_list_to_dict(item['data'])['url'], 'http://example.com/feed6')
Exemple #7
0
 def test_valid_offset(self):
     for i in range(1, 11):
         self.make_source(u"http://example.com/feed%s" % i)
     response = self.app.get_json('/v1/sources?offset=5',
                                  headers=self.PROVIDER_ID_HEADER)
     item = response['collection']['items'][0]
     self.assertEqual(data_list_to_dict(item['data'])['url'],
                      'http://example.com/feed6')
Exemple #8
0
 def __call__(self, value, system):
     request = system.get('request')
     if request is not None:
         response = request.response
         response.content_type = 'text/calendar'
     calendar = Calendar()
     for item in value['collection']['items']:
         self.add_event(calendar, data_list_to_dict(item['data']))
     return calendar.to_ical()
Exemple #9
0
 def __call__(self, value, system):
     request = system.get('request')
     if request is not None:
         response = request.response
         response.content_type = 'text/calendar'
     calendar = Calendar()
     for item in value['collection']['items']:
         self.add_event(calendar, data_list_to_dict(item['data']))
     return calendar.to_ical()
Exemple #10
0
    def test_get_source_list(self):
        source1 = self.make_source(u"http://example.com/mysource")
        source2 = self.make_source(u"http://example.com/myothersource")
        self.make_source(u"http://example.com/hersource", provider_id='456')

        response = self.app.get('/v1/sources', headers=self.PROVIDER_ID_HEADER)
        self.assertContentType(response, 'application/vnd.collection+json')

        self.assertEqual(response.json['collection']['href'],
                         'http://localhost/v1/sources')
        items = response.json['collection']['items']
        self.assertEqual(len(items), 2)
        self.assertEqual(data_list_to_dict(items[0]['data'])['id'], source1.id)
        self.assertEqual(items[0]['href'],
                         'http://localhost/v1/sources/%s' % source1.id)
        self.assertEqual(data_list_to_dict(items[1]['data'])['id'], source2.id)
        self.assertEqual(items[1]['href'],
                         'http://localhost/v1/sources/%s' % source2.id)
Exemple #11
0
 def test_multiple_values(self):
     data_list = [
         {u'name': u'categories', u'value': u'Music'},
         {u'name': u'categories', u'value': u'Theatre'},
         {u'name': u'categories', u'value': u'Cinema'}
     ]
     expected_dict = {
         u'categories': [u'Music', u'Theatre', u'Cinema']
     }
     self.assertEqual(data_list_to_dict(data_list), expected_dict)
Exemple #12
0
    def test_get_source_list(self):
        source1 = self.make_source(u"http://example.com/mysource")
        source2 = self.make_source(u"http://example.com/myothersource")
        self.make_source(u"http://example.com/hersource", provider_id='456')

        response = self.app.get('/v1/sources', headers=self.PROVIDER_ID_HEADER)
        self.assertContentType(response, 'application/vnd.collection+json')

        self.assertEqual(response.json['collection']['href'],
                         'http://localhost/v1/sources')
        items = response.json['collection']['items']
        self.assertEqual(len(items), 2)
        self.assertEqual(data_list_to_dict(items[0]['data'])['id'],
                         source1.id)
        self.assertEqual(items[0]['href'],
                         'http://localhost/v1/sources/%s' % source1.id)
        self.assertEqual(data_list_to_dict(items[1]['data'])['id'],
                         source2.id)
        self.assertEqual(items[1]['href'],
                         'http://localhost/v1/sources/%s' % source2.id)
Exemple #13
0
    def test_get_event(self):
        id = self.post_event()

        response = self.app.get(
            '/v1/events/%s' % id,
            headers={'Accept': 'application/vnd.collection+json'})

        self.assertContentType(response, 'application/vnd.collection+json')
        event_data = response.json['collection']['items'][0]['data']
        event_dict = data_list_to_dict(event_data)
        title = event_dict['title']
        self.assertEqual(title, u'Titre Événement')
Exemple #14
0
    def test_get_event(self):
        id = self.post_event()

        response = self.app.get(
            '/v1/events/%s' % id,
            headers={'Accept': 'application/vnd.collection+json'})

        self.assertContentType(response, 'application/vnd.collection+json')
        event_data = response.json['collection']['items'][0]['data']
        event_dict = data_list_to_dict(event_data)
        title = event_dict['title']
        self.assertEqual(title, u'Titre Événement')
Exemple #15
0
 def build_csv(cls, items):
     fieldnames = [column.name for column in EventModel.__mapper__.columns]
     fieldnames += ['location_' + column.name
                    for column in Location.__mapper__.columns
                    if column.name != 'event_id']
     fieldnames += ['tags', 'categories'] + cls.MEDIA_ATTRIBUTES
     output = StringIO()
     writer = csv.DictWriter(output, fieldnames=fieldnames)
     writer.writeheader()
     for item in items:
         data_dict = data_list_to_dict(item['data'])
         for key, value in data_dict.items():
             data_dict[key] = cls.format_value(key, value)
         writer.writerow(data_dict)
     return output.getvalue()
Exemple #16
0
    def test_get_source(self):
        source = self.make_source()

        response = self.app.get('/v1/sources/%s' % source.id)
        self.assertContentType(response, 'application/vnd.collection+json')

        source_data = response.json['collection']['items'][0]['data']
        data_dict = data_list_to_dict(source_data)
        self.assertEqual(data_dict['url'], 'http://example.com')
        self.assertNotIn('active', data_dict)
        self.assertNotIn('provider_id', data_dict)

        source_href = response.json['collection']['items'][0]['href']
        self.assertEqual(source_href,
                         'http://localhost/v1/sources/%s' % source.id)
Exemple #17
0
    def test_get_source(self):
        source = self.make_source()

        response = self.app.get('/v1/sources/%s' % source.id)
        self.assertContentType(response, 'application/vnd.collection+json')

        source_data = response.json['collection']['items'][0]['data']
        data_dict = data_list_to_dict(source_data)
        self.assertEqual(data_dict['url'], 'http://example.com')
        self.assertNotIn('active', data_dict)
        self.assertNotIn('provider_id', data_dict)

        source_href = response.json['collection']['items'][0]['href']
        self.assertEqual(source_href,
                         'http://localhost/v1/sources/%s' % source.id)
Exemple #18
0
 def build_csv(cls, items):
     fieldnames = [column.name for column in EventModel.__mapper__.columns]
     fieldnames += [
         'location_' + column.name for column in Location.__mapper__.columns
         if column.name != 'event_id'
     ]
     fieldnames += ['tags', 'categories'] + cls.MEDIA_ATTRIBUTES
     output = StringIO()
     writer = csv.DictWriter(output, fieldnames=fieldnames)
     writer.writeheader()
     for item in items:
         data_dict = data_list_to_dict(item['data'])
         for key, value in data_dict.items():
             data_dict[key] = cls.format_value(key, value)
         writer.writerow(data_dict)
     return output.getvalue()
Exemple #19
0
 def test_post_publication_times(self):
     response = self.app.post_json('/v1/events', {
         'template': {
             'data': [
                 {'name': 'title', 'value': u'Événement'},
                 {'name': u'start_time', 'value': u'2014-01-25T15:00'},
                 {'name': u'end_time', 'value': u'2014-01-25T15:00'},
                 {'name': 'publication_start',
                  'value': u'2014-01-25T16:00'},
                 {'name': 'publication_end', 'value': u'2014-01-25T17:00'},
             ]
         }
     }, headers=self.WRITE_HEADERS)
     event_data = data_list_to_dict(
         response.json['collection']['items'][0]['data'])
     event_id = event_data['id']
     event = Event.get_by_id(event_id)
     self.assertEqual(event.publication_start, datetime(2014, 1, 25, 16))
     self.assertEqual(event.publication_end, datetime(2014, 1, 25, 17))
Exemple #20
0
 def get_item_title(item):
     return data_list_to_dict(item['data'])['title']
Exemple #21
0
 def assertEqualIgnoringId(self, result, expected):
     result = remove_ids(result)
     self.assertEqual(data_list_to_dict(result),
                      data_list_to_dict(expected))
Exemple #22
0
 def get_item_title(item):
     return data_list_to_dict(item['data'])['title']
Exemple #23
0
 def assertEqualIgnoringId(self, result, expected):
     result = remove_ids(result)
     self.assertEqual(data_list_to_dict(result),
                      data_list_to_dict(expected))