Exemple #1
0
    def test_blogpost_with_first_image_as_thumbnail_and_summary(
            self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = '<p><img class="whatever" src="{0}" /> Whatever whatever</p>'.format(
            image_url)
        feed = self.feed('Some blog',
                         title,
                         content,
                         post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #2
0
    def test_blogpost_with_thumbnail_as_enclosure(self, blogpost, mime):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog',
                         title,
                         html_content,
                         post_url,
                         published=publish_date,
                         enclosure={
                             'type': mime,
                             'url': image_url
                         })

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #3
0
    def test_blogpost_with_first_image_as_thumbnail_as_src_set(self, blogpost, tpl):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        srcset = ', '.join(
            ' '.join((faker.image_url(width=w), '{0}w'.format(w)))
            for w in ('1200', '1024', '300')
        )
        sizes = "(max-width: 1200px) 100vw, 1200px"
        content = tpl.format(image_url, srcset, sizes)

        feed = self.feed('Some blog', title, content, post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert post['srcset'] == srcset
        assert post['sizes'] == sizes
Exemple #4
0
    def test_blogpost_with_first_image_as_thumbnail_as_src_set(
            self, blogpost, tpl):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        srcset = ', '.join(' '.join((faker.image_url(width=w),
                                     '{0}w'.format(w)))
                           for w in ('1200', '1024', '300'))
        sizes = "(max-width: 1200px) 100vw, 1200px"
        content = tpl.format(image_url, srcset, sizes)

        feed = self.feed('Some blog',
                         title,
                         content,
                         post_url,
                         published=publish_date,
                         summary=summary)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert post['srcset'] == srcset
        assert post['sizes'] == sizes
Exemple #5
0
def test_get_record(db):
    inserted = {
        'plugin':
        'test',
        'filename':
        'filename.py',
        'ops': [{
            'date': datetime.now(),
            'type': 'migrate',
            'script': 'script',
            'output': 'output',
            'success': True,
        }]
    }
    db.migrations.insert_one(inserted)

    record = migrations.get('test', 'filename.py').record

    assert record['plugin'] == inserted['plugin']
    assert record['filename'] == inserted['filename']

    op = record['ops'][0]
    assert op['script'] == inserted['ops'][0]['script']
    assert op['output'] == inserted['ops'][0]['output']
    assert op['type'] == inserted['ops'][0]['type']
    assert op['success']
    assert_equal_dates(op['date'], inserted['ops'][0]['date'])
Exemple #6
0
    def test_save_last_modified_instance(self):
        now = datetime.now()
        earlier = now - timedelta(days=1)
        datetimed = DatetimedTester.objects.create(
            created_at=earlier, last_modified=earlier)

        datetimed.save()
        datetimed.reload()

        assert_equal_dates(datetimed.created_at, earlier)
        assert_equal_dates(datetimed.last_modified, now)
Exemple #7
0
    def test_pending_harvester_validations(self):
        source = HarvestSourceFactory()
        admin = AdminFactory()
        user = UserFactory()

        assert len(validate_harvester_notifications(user)) == 0

        notifications = validate_harvester_notifications(admin)

        assert len(notifications) == 1
        dt, details = notifications[0]
        assert_equal_dates(dt, source.created_at)
        assert details['id'] == source.id
        assert details['name'] == source.name
    def test_dont_overwrite_last_modified(self, mocker):
        last_modified = faker.date_time_between(start_date='-30y',
                                                end_date='-1y')
        source = HarvestSourceFactory(config={
            'nb_datasets': 1,
            'last_modified': last_modified
        })
        backend = FakeBackend(source)

        backend.harvest()

        dataset = Dataset.objects.first()

        assert dataset.last_modified == last_modified
        harvest_last_update = parse(dataset.extras['harvest:last_update'])
        assert_equal_dates(harvest_last_update, datetime.now())
Exemple #9
0
    def test_save_last_modified_instance_manually_set_same_value(self):
        now = datetime.now()
        manual = now - timedelta(days=1)
        earlier = now - timedelta(days=2)
        datetimed = DatetimedTester.objects.create(created_at=earlier, last_modified=earlier)

        datetimed.last_modified = manual
        datetimed.save()
        datetimed.reload()

        datetimed.last_modified = manual
        datetimed.save()
        datetimed.reload()

        assert_equal_dates(datetimed.created_at, earlier)
        assert_equal_dates(datetimed.last_modified, manual)
    def test_simple_harvest(self):
        now = datetime.now()
        nb_datasets = 3
        source = HarvestSourceFactory(config={'nb_datasets': nb_datasets})
        backend = FakeBackend(source)

        job = backend.harvest()

        assert len(job.items) == nb_datasets
        assert Dataset.objects.count() == nb_datasets
        for dataset in Dataset.objects():
            assert_equal_dates(dataset.last_modified, now)
            assert dataset.extras['harvest:source_id'] == str(source.id)
            assert dataset.extras['harvest:domain'] == source.domain
            assert dataset.extras['harvest:remote_id'].startswith('fake-')
            harvest_last_update = parse(dataset.extras['harvest:last_update'])
            assert_equal_dates(harvest_last_update, now)
Exemple #11
0
    def test_basic_blogpost(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert 'image_url' not in post
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #12
0
    def test_basic_blogpost(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert 'image_url' not in post
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #13
0
    def test_blogpost_with_first_image_as_thumbnail(self, blogpost):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        summary = faker.sentence()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = '<p><img class="whatever" src="{0}" /> {1}</p>'.format(image_url, summary)
        feed = self.feed('Some blog', title, content, post_url,
                         published=publish_date)

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == summary
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #14
0
    def test_blogpost_with_thumbnail_as_enclosure(self, blogpost, mime):
        title = faker.sentence()
        post_url = faker.uri()
        image_url = faker.image_url()
        tz = pytz.timezone(faker.timezone())
        publish_date = faker.date_time(tzinfo=tz)
        content = faker.sentence()
        html_content = '<div>{0}</div>'.format(content)
        feed = self.feed('Some blog', title, html_content, post_url,
                         published=publish_date,
                         enclosure={'type': mime, 'url': image_url})

        post = blogpost(feed)

        assert post['title'] == title
        assert post['link'] == post_url
        assert post['summary'] == content
        assert_equal_dates(post['date'], publish_date)
        assert post['image_url'] == image_url
        assert 'srcset' not in post
        assert 'sizes' not in post
Exemple #15
0
    def test_pending_membership_requests(self):
        admin = UserFactory()
        editor = UserFactory()
        applicant = UserFactory()
        request = MembershipRequest(user=applicant, comment='test')
        members = [
            Member(user=editor, role='editor'),
            Member(user=admin, role='admin')
        ]
        org = OrganizationFactory(members=members, requests=[request])

        assert len(membership_request_notifications(applicant)) is 0
        assert len(membership_request_notifications(editor)) is 0

        notifications = membership_request_notifications(admin)
        assert len(notifications) is 1
        dt, details = notifications[0]
        assert_equal_dates(dt, request.created)
        assert details['id'] == request.id
        assert details['organization'] == org.id
        assert details['user']['id'] == applicant.id
        assert details['user']['fullname'] == applicant.fullname
        assert details['user']['avatar'] == str(applicant.avatar)
Exemple #16
0
    def test_pending_membership_requests(self):
        admin = UserFactory()
        editor = UserFactory()
        applicant = UserFactory()
        request = MembershipRequest(user=applicant, comment='test')
        members = [
            Member(user=editor, role='editor'),
            Member(user=admin, role='admin')
        ]
        org = OrganizationFactory(members=members, requests=[request])

        assert len(membership_request_notifications(applicant)) is 0
        assert len(membership_request_notifications(editor)) is 0

        notifications = membership_request_notifications(admin)
        assert len(notifications) is 1
        dt, details = notifications[0]
        assert_equal_dates(dt, request.created)
        assert details['id'] == request.id
        assert details['organization'] == org.id
        assert details['user']['id'] == applicant.id
        assert details['user']['fullname'] == applicant.fullname
        assert details['user']['avatar'] == str(applicant.avatar)
Exemple #17
0
 def test_next_update_weekly(self):
     dataset = DatasetFactory(frequency='weekly')
     assert_equal_dates(dataset.next_update,
                        datetime.now() + timedelta(days=7))
 def test_last_update_without_resource(self):
     user = UserFactory()
     dataset = DatasetFactory(owner=user)
     assert_equal_dates(dataset.last_update, dataset.last_modified)
 def test_last_update_with_resource(self):
     user = UserFactory()
     dataset = DatasetFactory(owner=user)
     resource = ResourceFactory()
     dataset.add_resource(resource)
     assert_equal_dates(dataset.last_update, resource.published)
 def test_next_update_weekly(self):
     dataset = DatasetFactory(frequency='weekly')
     assert_equal_dates(dataset.next_update,
                        datetime.now() + timedelta(days=7))
Exemple #21
0
 def test_last_update_with_resource(self):
     user = UserFactory()
     dataset = DatasetFactory(owner=user)
     resource = ResourceFactory()
     dataset.add_resource(resource)
     assert_equal_dates(dataset.last_update, resource.published)
Exemple #22
0
 def test_last_update_without_resource(self):
     user = UserFactory()
     dataset = DatasetFactory(owner=user)
     assert_equal_dates(dataset.last_update, dataset.last_modified)