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
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
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 msNo 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 failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 7 hours ago | CI github-actions:test | passed | 254 ms | Profile |
| 16 hours ago | CI github-actions:test | passed | 154 ms | Profile |
| 22 hours ago | CI github-actions:test | passed | 287 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 364 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 162 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 226 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 152 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 195 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 226 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 467 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 227 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 137 ms | Run |