flakytest.dev anze3db fedidevs
Tests / confs/tests.py

TestConferenceOgImage::test_render_writes_file_and_updates_fields

First seen 3 weeks ago in 0c23747
CI github-actions:test 11 runs
Average
247 ms
median 226 ms
max 467 ms
Phases
Setup 1 ms Call 245 ms Teardown 0.31 ms
Categories
Database 6 ms App code 5 ms Test code 2 ms Factories 0.28 ms Other (Libraries, pytest, Unsampled) 234 ms

8 database queries per run

Needs 33 MB of memory (max 34 MB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 7 hours ago · open run
Show pytest frames
call253 ms99.5%
TestConferenceOgImage.test_render_writes_file_and_updates_fieldsconfs/tests.py:1446 render_conference_og_image(conference)246 ms96.8%
render_conference_og_imageconfs/og_images.py:240199 ms78.5%
render_conference_og_image_to_image_objconfs/og_images.py:230 return image.resize(RESOLUTION, resample=Image.Resampling.LANCZOS)71 ms28.0%
Image.resizePIL/Image.py:243871 ms28.0%
render_conference_og_image_to_image_objconfs/og_images.py:15852 ms20.6%
_draw_centeredconfs/og_images.py:7343 ms17.1%
_fit_font_sizeconfs/og_images.py:6443 ms17.1%
_text_widthconfs/og_images.py:5443 ms17.1%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)38 ms15.2%
ImageDraw.textlengthPIL/ImageDraw.py:70838 ms15.2%
Text.get_lengthPIL/ImageText.py:31738 ms15.2%
FreeTypeFont.getlengthPIL/ImageFont.py:40338 ms15.2%
split_text_emoji_segmentsstarter_packs/splash_images.py:300 bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])5 ms1.9%
ImageDraw.textbboxPIL/ImageDraw.py:7365 ms1.9%
Text.get_bboxPIL/ImageText.py:4915 ms1.9%
Text._get_bboxPIL/ImageText.py:4555 ms1.9%
FreeTypeFont.getbboxPIL/ImageFont.py:4645 ms1.9%
_draw_centeredconfs/og_images.py:759 ms3.5%
draw_text_with_emojistarter_packs/splash_images.py:3175 ms1.9%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)5 ms1.9%
ImageDraw.textlengthPIL/ImageDraw.py:7085 ms1.9%
Text.get_lengthPIL/ImageText.py:3175 ms1.9%
FreeTypeFont.getlengthPIL/ImageFont.py:4035 ms1.9%
draw_text_with_emojistarter_packs/splash_images.py:345 image_draw.text(4 ms1.6%
ImageDraw.textPIL/ImageDraw.py:6474 ms1.6%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:5912 ms0.8%
FreeTypeFont.getmask2PIL/ImageFont.py:6532 ms0.8%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:6362 ms0.8%
render_conference_og_image_to_image_objconfs/og_images.py:18027 ms10.5%
_draw_centeredconfs/og_images.py:7514 ms5.4%
draw_text_with_emojistarter_packs/splash_images.py:3179 ms3.5%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)8 ms3.1%
ImageDraw.textlengthPIL/ImageDraw.py:7088 ms3.1%
Text.get_lengthPIL/ImageText.py:3178 ms3.1%
FreeTypeFont.getlengthPIL/ImageFont.py:4038 ms3.1%
1 smaller frames hidden
draw_text_with_emojistarter_packs/splash_images.py:345 image_draw.text(5 ms1.9%
ImageDraw.textPIL/ImageDraw.py:6475 ms1.9%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:5913 ms1.2%
FreeTypeFont.getmask2PIL/ImageFont.py:6533 ms1.2%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:6362 ms0.8%
_draw_centeredconfs/og_images.py:7313 ms5.1%
_fit_font_sizeconfs/og_images.py:6411 ms4.3%
_text_widthconfs/og_images.py:5411 ms4.3%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)7 ms2.7%
ImageDraw.textlengthPIL/ImageDraw.py:7087 ms2.7%
Text.get_lengthPIL/ImageText.py:3177 ms2.7%
FreeTypeFont.getlengthPIL/ImageFont.py:4037 ms2.7%
split_text_emoji_segmentsstarter_packs/splash_images.py:300 bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])3 ms1.2%
ImageDraw.textbboxPIL/ImageDraw.py:7363 ms1.2%
Text.get_bboxPIL/ImageText.py:4913 ms1.2%
Text._get_bboxPIL/ImageText.py:4553 ms1.2%
FreeTypeFont.getbboxPIL/ImageFont.py:4643 ms1.2%
1 smaller frames hidden
_fit_font_sizeconfs/og_images.py:632 ms0.8%
_load_fontsconfs/og_images.py:47 ImageFont.truetype(path, size) for path in glob.glob(str(settings.BASE_DIR / "static" / "NotoSans*.ttf"))2 ms0.8%
truetypePIL/ImageFont.py:8852 ms0.8%
truetype.<locals>.freetypePIL/ImageFont.py:8822 ms0.8%
FreeTypeFont.__init__PIL/ImageFont.py:2982 ms0.8%
render_conference_og_image_to_image_objconfs/og_images.py:16921 ms8.2%
_draw_centeredconfs/og_images.py:7512 ms4.7%
draw_text_with_emojistarter_packs/splash_images.py:345 image_draw.text(9 ms3.5%
ImageDraw.textPIL/ImageDraw.py:6479 ms3.5%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:6366 ms2.3%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:5913 ms1.2%
FreeTypeFont.getmask2PIL/ImageFont.py:6533 ms1.2%
draw_text_with_emojistarter_packs/splash_images.py:3173 ms1.2%
split_text_emoji_segmentsstarter_packs/splash_images.py:300 bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])3 ms1.2%
ImageDraw.textbboxPIL/ImageDraw.py:7363 ms1.2%
Text.get_bboxPIL/ImageText.py:4913 ms1.2%
Text._get_bboxPIL/ImageText.py:4553 ms1.2%
FreeTypeFont.getbboxPIL/ImageFont.py:4643 ms1.2%
_draw_centeredconfs/og_images.py:739 ms3.5%
_fit_font_sizeconfs/og_images.py:647 ms2.7%
_text_widthconfs/og_images.py:547 ms2.7%
split_text_emoji_segmentsstarter_packs/splash_images.py:300 bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])4 ms1.6%
ImageDraw.textbboxPIL/ImageDraw.py:7364 ms1.6%
Text.get_bboxPIL/ImageText.py:4914 ms1.6%
Text._get_bboxPIL/ImageText.py:4554 ms1.6%
FreeTypeFont.getbboxPIL/ImageFont.py:4644 ms1.6%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)3 ms1.2%
ImageDraw.textlengthPIL/ImageDraw.py:7083 ms1.2%
Text.get_lengthPIL/ImageText.py:3173 ms1.2%
FreeTypeFont.getlengthPIL/ImageFont.py:4033 ms1.2%
_fit_font_sizeconfs/og_images.py:632 ms0.8%
_load_fontsconfs/og_images.py:47 ImageFont.truetype(path, size) for path in glob.glob(str(settings.BASE_DIR / "static" / "NotoSans*.ttf"))2 ms0.8%
render_conference_og_image_to_image_objconfs/og_images.py:229 image = image.convert("RGB")14 ms5.4%
Image.convertPIL/Image.py:123414 ms5.4%
render_conference_og_image_to_image_objconfs/og_images.py:193 tag_size, tag_fonts = _fit_font_size(draw, hashtag, max_text_width - round(0.1 * width), round(52 * ss))6 ms2.3%
_fit_font_sizeconfs/og_images.py:644 ms1.6%
_text_widthconfs/og_images.py:544 ms1.6%
split_text_emoji_segmentsstarter_packs/splash_images.py:300 bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])3 ms1.2%
ImageDraw.textbboxPIL/ImageDraw.py:7363 ms1.2%
Text.get_bboxPIL/ImageText.py:4913 ms1.2%
Text._get_bboxPIL/ImageText.py:4553 ms1.2%
FreeTypeFont.getbboxPIL/ImageFont.py:4643 ms1.2%
1 smaller frames hidden
1 smaller frames hidden
render_conference_og_image_to_image_objconfs/og_images.py:2065 ms1.9%
draw_text_with_emojistarter_packs/splash_images.py:3173 ms1.2%
split_text_emoji_segmentsstarter_packs/splash_images.py:286 segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)3 ms1.2%
ImageDraw.textlengthPIL/ImageDraw.py:7083 ms1.2%
Text.get_lengthPIL/ImageText.py:3173 ms1.2%
FreeTypeFont.getlengthPIL/ImageFont.py:4033 ms1.2%
draw_text_with_emojistarter_packs/splash_images.py:345 image_draw.text(2 ms0.8%
ImageDraw.textPIL/ImageDraw.py:6472 ms0.8%
render_conference_og_image_to_image_objconfs/og_images.py:221 draw.text(4 ms1.6%
ImageDraw.textPIL/ImageDraw.py:6474 ms1.6%
ImageDraw.text.<locals>.draw_textPIL/ImageDraw.py:5914 ms1.6%
FreeTypeFont.getmask2PIL/ImageFont.py:6534 ms1.6%
render_conference_og_imageconfs/og_images.py:246 image.save(image_path)41 ms16.3%
Image.savePIL/Image.py:271140 ms15.9%
_savePIL/PngImagePlugin.py:152240 ms15.9%
_savePIL/ImageFile.py:66740 ms15.9%
_encode_tilePIL/ImageFile.py:69340 ms15.9%
1 smaller frames hidden
render_conference_og_imageconfs/og_images.py:255 conference.save(2 ms0.8%
Model.savedjango/db/models/base.py:9042 ms0.8%
Model.save_basedjango/db/models/base.py:9962 ms0.8%
Model._save_tabledjango/db/models/base.py:11402 ms0.8%
Model._do_updatedjango/db/models/base.py:12442 ms0.8%
QuerySet._updatedjango/db/models/query.py:14482 ms0.8%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()4 ms1.6%
TestCase._fixture_teardowndjango/test/testcases.py:14982 ms0.8%
TestCase._fixture_teardowndjango/test/testcases.py:15002 ms0.8%
TestCase._rollback_atomicsdjango/test/testcases.py:14082 ms0.8%
TestConferenceOgImage.test_render_writes_file_and_updates_fieldsconfs/tests.py:1447 conference.refresh_from_db()2 ms0.8%
Model.refresh_from_dbdjango/db/models/base.py:7882 ms0.8%
1 smaller frames hidden
Estimated from 256 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

confs/og_images.py:230
return image.resize(RESOLUTION, resample=Image.Resampling.LANCZOS)
render_conference_og_image_to_image_obj · Libraries
71 ms
starter_packs/splash_images.py:286
segments[-1]["width"] = image_draw.textlength(segments[-1]["content"], current_font)
split_text_emoji_segments · Libraries
65 ms
confs/og_images.py:246
image.save(image_path)
render_conference_og_image · Libraries
41 ms
starter_packs/splash_images.py:345
image_draw.text(
draw_text_with_emoji · Libraries
20 ms
starter_packs/splash_images.py:300
bbox = image_draw.textbbox((0, 0), segment["content"], segment["font"])
split_text_emoji_segments · Libraries
19 ms
confs/og_images.py:229
image = image.convert("RGB")
render_conference_og_image_to_image_obj · Libraries
14 ms
confs/og_images.py:47
ImageFont.truetype(path, size) for path in glob.glob(str(settings.BASE_DIR / "static" / "NotoSans*.ttf"))
_load_fonts · Libraries
5 ms
confs/og_images.py:221
draw.text(
render_conference_og_image_to_image_obj · Libraries
4 ms
confs/tests.py:1446
render_conference_og_image(conference)
TestConferenceOgImage.test_render_writes_file_and_updates_fields · Test code
3 ms
confs/og_images.py:255
conference.save(
render_conference_og_image · Database
2 ms

Fixtures

Exact setup time
_dj_autoclear_mailbox function 0.05 ms
_template_string_if_invalid_marker function 0.05 ms
_django_db_marker function 0.04 ms
_django_isolate_apps function 0.04 ms
_live_server_helper function 0.04 ms
_django_set_urlconf function 0.04 ms
_django_clear_site_cache function 0.04 ms
monkeypatch function 0.02 ms

Database

8 queries · 6 ms
No repeated queries.

Biggest pieces of work

call test body
confs/tests.py:1446
249 ms
call _post_teardown
django/test/testcases.py:1243
4 ms

Reliability

12 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
7 hours ago CI github-actions:test passed 254 ms c28a326 main Profile
16 hours ago CI github-actions:test passed 154 ms 9b8826a main Profile
22 hours ago CI github-actions:test passed 287 ms 4f01055 main Profile
1 week, 5 days ago CI github-actions:test passed 364 ms 8ab642e main Profile
2 weeks, 2 days ago CI github-actions:test passed 162 ms 9b75244 main Profile
2 weeks, 2 days ago CI github-actions:test passed 226 ms 9603516 main Profile
2 weeks, 4 days ago CI github-actions:test passed 152 ms 615a272 main Profile
2 weeks, 6 days ago CI github-actions:test passed 195 ms d923a46 main Profile
3 weeks ago CI github-actions:test passed 226 ms 82997f8 main Profile
3 weeks ago CI github-actions:test passed 467 ms 623aa3e main Profile
3 weeks ago CI github-actions:test passed 227 ms ab6465a main Profile
3 weeks ago CI github-actions:test passed 137 ms 0c23747 main Run