def test_get_articles(self): self.api = BlogAPI(session=requests.Session()) articles, metadata = self.api.get_articles() for article in articles: self.assertTrue(int(metadata["total_pages"]) >= 258) self.assertTrue(int(metadata["total_posts"]) >= 3095) no_article = self.api.get_article(slug="nonexistent-slug") self.assertEqual(no_article, {})
def test_it_does_not_transform_article_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=False, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( 'src="https://ubuntu.com/' 'wp-content/uploads/2e4c/dell-xps-2004.jpg"', article["content"]["rendered"], )
def test_it_transforms_article_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/f_auto,' "q_auto,fl_sanitize,c_fill,w_720/https://ubuntu.com" '/wp-content/uploads/2e4c/dell-xps-2004.jpg"', article["content"]["rendered"], )
def test_get_articles_with_transforming_links(self): self.api = BlogAPI( session=requests.Session(), use_image_template=False, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertNotIn( "admin.insights.ubuntu.com/wp-content/uploads", article["content"]["rendered"], ) self.assertIn("ubuntu.com/wp-content/uploads", article["content"]["rendered"])
def test_it_transforms_article_with_fixed_dimensions_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/design-and-web-team-summary-20th-july-2020") self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/f_auto,' "q_auto,fl_sanitize,c_fill,w_266,h_286/" "https://lh5.googleusercontent.com/" "PKCTzU1ENAow2PDqhPo-K6drMTKwQduAAqKNUbHWVnJmmQXjI8GsXgSQhsVg6Q-" "0vZrKRCFNUxYvG1iIDVQ3MSTzgx-" 'UWtGlLR6lgZQWcEt0P967bjqQCePnSJXOd3FWVjo0hzTG"', article["content"]["rendered"], )
def test_it_transforms_article_with_percent_width_dimension_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/top-10-linux-apps-for-entertainment-and-leisure") self.assertNotIn( 'src="https://res.cloudinary.com/canonical/image/fetch/' "f_auto,q_auto,fl_sanitize,c_fill,w_100%", article["content"]["rendered"], ) self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/' "f_auto,q_auto,fl_sanitize,c_fill,w_720", article["content"]["rendered"], )
def test_get_thumbnail_setting(self): self.api = BlogAPI( session=requests.Session(), thumbnail_width=354, thumbnail_height=199, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( "w_354", article["image"]["rendered"], ) self.assertIn( "h_199", article["image"]["rendered"], )
def setUp(self): super().setUp() app = flask.Flask("main", template_folder=f"{this_dir}/fixtures/templates") Reggie().init_app(app) blog = build_blueprint(blog_views=BlogViews( blog_title="Snapcraft Blog", blog_path="/", api=BlogAPI(session=requests.Session()), )) app.register_blueprint(blog, url_prefix="/") app.testing = True self.test_client = app.test_client()
class TestBlogAPI(VCRTestCase): def test_get_articles(self): self.api = BlogAPI(session=requests.Session()) articles, metadata = self.api.get_articles() for article in articles: self.assertTrue(int(metadata["total_pages"]) >= 258) self.assertTrue(int(metadata["total_posts"]) >= 3095) no_article = self.api.get_article(slug="nonexistent-slug") self.assertEqual(no_article, {}) def test_get_articles_with_transforming_links(self): self.api = BlogAPI( session=requests.Session(), use_image_template=False, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertNotIn( "admin.insights.ubuntu.com/wp-content/uploads", article["content"]["rendered"], ) self.assertIn("ubuntu.com/wp-content/uploads", article["content"]["rendered"]) def test_it_transforms_article_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/f_auto,' "q_auto,fl_sanitize,c_fill,w_720/https://ubuntu.com" '/wp-content/uploads/2e4c/dell-xps-2004.jpg"', article["content"]["rendered"], ) def test_it_transforms_article_with_fixed_dimensions_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/design-and-web-team-summary-20th-july-2020") self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/f_auto,' "q_auto,fl_sanitize,c_fill,w_266,h_286/" "https://lh5.googleusercontent.com/" "PKCTzU1ENAow2PDqhPo-K6drMTKwQduAAqKNUbHWVnJmmQXjI8GsXgSQhsVg6Q-" "0vZrKRCFNUxYvG1iIDVQ3MSTzgx-" 'UWtGlLR6lgZQWcEt0P967bjqQCePnSJXOd3FWVjo0hzTG"', article["content"]["rendered"], ) def test_it_transforms_article_with_percent_width_dimension_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=True, ) article = self.api.get_article( slug="/top-10-linux-apps-for-entertainment-and-leisure") self.assertNotIn( 'src="https://res.cloudinary.com/canonical/image/fetch/' "f_auto,q_auto,fl_sanitize,c_fill,w_100%", article["content"]["rendered"], ) self.assertIn( 'src="https://res.cloudinary.com/canonical/image/fetch/' "f_auto,q_auto,fl_sanitize,c_fill,w_720", article["content"]["rendered"], ) def test_it_does_not_transform_article_image(self): self.api = BlogAPI( session=requests.Session(), use_image_template=False, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( 'src="https://ubuntu.com/' 'wp-content/uploads/2e4c/dell-xps-2004.jpg"', article["content"]["rendered"], ) def test_get_thumbnail_setting(self): self.api = BlogAPI( session=requests.Session(), thumbnail_width=354, thumbnail_height=199, ) article = self.api.get_article( slug="/dell-xps-13-developer-edition-with-ubuntu-20-04" + "-lts-pre-installed-is-now-available") self.assertIn( "w_354", article["image"]["rendered"], ) self.assertIn( "h_199", article["image"]["rendered"], )