In addition to the fixes done in [#7834], a ticket can still be marked as updated just when viewed. This happens if the cache was not created initially (e.g. ticket import - no view, or first view was under the threshold time) and then the cache was created upon a later view. We need to skip updating mod_date
and last_updated
when a cache is set. I think it's probably safe to set the skip_mod_date
and skip_last_updated
flags on the session, since there shouldn't be cases of rendering a markdown (viewing) in the same session as legitimately updating records (I hope).
Ready for review.
hs/7852
Very minor feedback:
setattr(session, 'skip_mod_date', True)
can besession.skip_mod_date = True
test_cached_convert
, we should have a comment explaining whyskip_mod_date
is needed to avoid the automatic setting of mod_date when it is savedBigger:
cached_convert
is being mocked, there's the caching logic will never run at all. We need it to run so the test actually tests it :) I'd just remove that mock. For a strong assertion that it did run, rather than mocking it and checking call_count, we could check thatticket.description_cache.html
is set... but that requires querying Ming for the record and making sure you get that latest (not cached in the Ming layer)Besides that I think the test approach is fine, even if it's not ideal.
Force-pushed hs/7852 (rebase)
Good feedback.
I removed the mock am now asserting
ticket.description_cache.html
returns the expected result.