def test_run_with_same_url_for_blog_posts(self) -> None: blog_post_summary_model_1 = self.create_model( blog_models.BlogPostSummaryModel, id='validblogid1', title='Sample Title 1', summary='<p>hello</p>,', author_id='user', url_fragment='url_fragment') blog_post_summary_model_2 = self.create_model( blog_models.BlogPostSummaryModel, id='validblogid2', title='Sample Title 2', summary='<p>hello tho</p>,', author_id='user', url_fragment='url_fragment') blog_post_summary_model_3 = self.create_model( blog_models.BlogPostSummaryModel, id='validblogid3', title='Sample Diff Title', summary='<p>hello tho</p>,', author_id='user', url_fragment='diff_url_fragment') self.put_multi([ blog_post_summary_model_1, blog_post_summary_model_2, blog_post_summary_model_3, ]) self.assert_job_output_is([ blog_validation_errors.DuplicateBlogUrlError( blog_post_summary_model_1), blog_validation_errors.DuplicateBlogUrlError( blog_post_summary_model_2), ])
def run(self) -> beam.Pipeline: return (self.pipeline | 'Get every Blog Post Model' >> (ndb_io.GetModels(blog_models.BlogPostModel.query())) | GetModelsWithDuplicatePropertyValues('url_fragment') | 'Flatten models into a list of errors' >> beam.FlatMap(lambda models: [ blog_validation_errors.DuplicateBlogUrlError(model) for model in models ]))
def test_message(self) -> None: blog_post_model = blog_models.BlogPostModel( id='validblogid1', title='Sample Title', content='<p>hello</p>,', author_id='user', url_fragment='url_fragment_1') error = blog_validation_errors.DuplicateBlogUrlError(blog_post_model) self.assertEqual( error.stderr, 'DuplicateBlogUrlError in BlogPostModel(id="validblogid1"): url=%s' ' is not unique' % utils.quoted(blog_post_model.url_fragment))