(writer)
| 154 | |
| 155 | |
| 156 | def test_lazy_function_executed_only_once(writer): |
| 157 | counter = 0 |
| 158 | |
| 159 | def laziness(): |
| 160 | nonlocal counter |
| 161 | counter += 1 |
| 162 | return counter |
| 163 | |
| 164 | logger.add(writer, level=10, format="{level.name} => {message}") |
| 165 | |
| 166 | logger.opt(lazy=True).info("1: {lazy} {lazy}", lazy=laziness) |
| 167 | logger.opt(lazy=True).info("2: {0} {0}", laziness) |
| 168 | |
| 169 | assert writer.read() == "INFO => 1: 1 1\nINFO => 2: 2 2\n" |
| 170 | |
| 171 | |
| 172 | def test_logging_within_lazy_function(writer): |