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
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
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
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
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'])
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)
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())
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)
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
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
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
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
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)
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)
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))
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_last_update_without_resource(self): user = UserFactory() dataset = DatasetFactory(owner=user) assert_equal_dates(dataset.last_update, dataset.last_modified)