--- /srv/reproducible-results/rbuild-debian/r-b-build.ZMIYAHYi/b1/python-inline-snapshot_0.19.3-1_armhf.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.ZMIYAHYi/b2/python-inline-snapshot_0.19.3-1_armhf.changes ├── Files │ @@ -1,3 +1,3 @@ │ │ - 5e9e10b7a7338770da3507ee82cf26e4 535644 doc optional python-inline-snapshot-doc_0.19.3-1_all.deb │ + 895e18f08bb9e7a72f17df8a6fbd25a6 535668 doc optional python-inline-snapshot-doc_0.19.3-1_all.deb │ 3ddbc791df9158261eb361c3e0c89846 36476 python optional python3-inline-snapshot_0.19.3-1_all.deb ├── python-inline-snapshot-doc_0.19.3-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-01-16 17:36:51.000000 debian-binary │ │ -rw-r--r-- 0 0 0 3020 2025-01-16 17:36:51.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 532432 2025-01-16 17:36:51.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 532456 2025-01-16 17:36:51.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── ./usr/share/doc/python-inline-snapshot-doc/html/extra.html │ │ │ │ @@ -1052,15 +1052,15 @@ │ │ │ │ <a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a> <span class="nb">print</span><span class="p">(</span><span class="s2">"some error"</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="p">)</span> │ │ │ │ </code></pre></div></p> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-63"> 63</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-64"> 64</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-65"> 65</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-66"> 66</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-67"> 67</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-68"> 68</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-69"> 69</a></span> │ │ │ │ @@ -1265,15 +1265,15 @@ │ │ │ │ </span><a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a> <span class="mi">1</span> <span class="o">/</span> <span class="mi">0</span> │ │ │ │ </code></pre></div></p> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-17">17</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-18">18</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-19">19</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-20">20</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-21">21</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-22">22</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-23">23</a></span> │ │ │ │ @@ -1471,15 +1471,15 @@ │ │ │ │ </span><a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a> <span class="n">warn</span><span class="p">(</span><span class="s2">"some problem"</span><span class="p">)</span> │ │ │ │ </code></pre></div></p> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ </div> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-136">136</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-137">137</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-138">138</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-139">139</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-140">140</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-141">141</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-142">142</a></span> │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ │ def test_prints(): │ │ │ │ │ with prints( │ │ │ │ │ stdout=IsStr(), │ │ │ │ │ stderr=snapshot("some error\n"), │ │ │ │ │ ): │ │ │ │ │ print("hello world") │ │ │ │ │ print("some error", file=sys.stderr) │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ extra.py │ │ │ │ │ @contextlib.contextmanager │ │ │ │ │ _ _6_3 def prints(*, stdout: Snapshot[str] = "", stderr: Snapshot[str] = ""): │ │ │ │ │ _ _6_4 """Uses `contextlib.redirect_stderr/stdout` to capture the output and │ │ │ │ │ _ _6_5 compare it with the snapshots. `dirty_equals.IsStr` can be used to │ │ │ │ │ _ _6_6 ignore │ │ │ │ │ _ _6_7 the output if needed. │ │ │ │ │ @@ -178,15 +178,15 @@ │ │ │ │ │ from inline_snapshot import snapshot │ │ │ │ │ from inline_snapshot.extra import raises │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ def test_raises(): │ │ │ │ │ with raises(snapshot("ZeroDivisionError: division by zero")): │ │ │ │ │ 1 / 0 │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ extra.py │ │ │ │ │ @contextlib.contextmanager │ │ │ │ │ _1_7 def raises(exception: Snapshot[str]): │ │ │ │ │ _1_8 """Check that an exception is raised. │ │ │ │ │ _1_9 │ │ │ │ │ _2_0 Parameters: │ │ │ │ │ _2_1 exception: snapshot which is compared with `#!python f"{type}: │ │ │ │ │ @@ -265,15 +265,15 @@ │ │ │ │ │ from warnings import warn │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ def test_warns(): │ │ │ │ │ with warns(snapshot([(8, "UserWarning: some problem")]), │ │ │ │ │ include_line=True): │ │ │ │ │ warn("some problem") │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ extra.py │ │ │ │ │ @contextlib.contextmanager │ │ │ │ │ def warns( │ │ │ │ │ expected_warnings: Snapshot[List[Warning]], │ │ │ │ │ _1_3_6 /, │ │ │ │ │ _1_3_7 include_line: bool = False, │ │ │ │ │ _1_3_8 include_file: bool = False, │ │ │ ├── ./usr/share/doc/python-inline-snapshot-doc/html/outsource.html │ │ │ │ @@ -1169,15 +1169,15 @@ │ │ │ │ </div> │ │ │ │ </td> │ │ │ │ </tr> │ │ │ │ </tbody> │ │ │ │ </table> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-137">137</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-138">138</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-139">139</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-140">140</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-141">141</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-142">142</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-143">143</a></span> │ │ │ │ @@ -1285,15 +1285,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-76"> 76</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-77"> 77</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-78"> 78</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-79"> 79</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-80"> 80</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-81"> 81</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-82"> 82</a></span> │ │ │ │ @@ -1433,15 +1433,15 @@ │ │ │ │ │ │ │ │ <div class="doc doc-contents "> │ │ │ │ │ │ │ │ <p>Two external objects are equal if they have the same hash and │ │ │ │ suffix.</p> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-116">116</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-117">117</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-118">118</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-119">119</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-120">120</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-121">121</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-122">122</a></span> │ │ │ │ @@ -1519,15 +1519,15 @@ │ │ │ │ <em>required</em> │ │ │ │ </td> │ │ │ │ </tr> │ │ │ │ </tbody> │ │ │ │ </table> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-77">77</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-78">78</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-79">79</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-80">80</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-81">81</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-82">82</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-83">83</a></span> │ │ │ │ @@ -1583,15 +1583,15 @@ │ │ │ │ <div class="doc doc-contents "> │ │ │ │ │ │ │ │ <p>Returns the representation of the external object.</p> │ │ │ │ <p>The length of the hash can be specified in the │ │ │ │ <a href="configuration.html">config</a>.</p> │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-103">103</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-104">104</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-105">105</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-106">106</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-107">107</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-108">108</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-109">109</a></span> │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -115,15 +115,15 @@ │ │ │ │ │ encoded with "utf-8". │ │ │ │ │ overwrite file suffix. The default is ".bin" │ │ │ │ │ suffix Optional[str] if data is an instance of bytes and ".txt" None │ │ │ │ │ for str. │ │ │ │ │ Returns: │ │ │ │ │ TTyyppee DDeessccrriippttiioonn │ │ │ │ │ _e_x_t_e_r_n_a_l The external data. │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _external.py │ │ │ │ │ def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) - │ │ │ │ │ > external: │ │ │ │ │ _1_3_7 """Outsource some data into an external file. │ │ │ │ │ _1_3_8 │ │ │ │ │ _1_3_9 ``` pycon │ │ │ │ │ _1_4_0 >>> png_data = b"some_bytes" # should be the replaced with your actual │ │ │ │ │ @@ -167,15 +167,15 @@ │ │ │ │ │ _1_7_8 │ │ │ │ │ _1_7_9 if not storage.lookup_all(name): │ │ │ │ │ _1_8_0 path = hash + "-new" + suffix │ │ │ │ │ _1_8_1 storage.save(path, data) │ │ │ │ │ │ │ │ │ │ return external(name) │ │ │ │ │ iinnlliinnee__ssnnaappsshhoott..eexxtteerrnnaall _?¶ │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _external.py │ │ │ │ │ class external: │ │ │ │ │ def __init__(self, name: str): │ │ │ │ │ """External objects are used as a representation for outsourced │ │ │ │ │ _ _7_6 data. │ │ │ │ │ _ _7_7 You should not create them directly. │ │ │ │ │ _ _7_8 │ │ │ │ │ @@ -236,15 +236,15 @@ │ │ │ │ │ _1_3_3 return True │ │ │ │ │ _1_3_4 │ │ │ │ │ def _load_value(self): │ │ │ │ │ assert storage is not None │ │ │ │ │ return storage.read(self._path) │ │ │ │ │ ____eeqq____((ootthheerr)) _?¶ │ │ │ │ │ Two external objects are equal if they have the same hash and suffix. │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _external.py │ │ │ │ │ _1_1_6 def __eq__(self, other): │ │ │ │ │ _1_1_7 """Two external objects are equal if they have the same hash and │ │ │ │ │ _1_1_8 suffix.""" │ │ │ │ │ _1_1_9 if not isinstance(other, external): │ │ │ │ │ _1_2_0 return NotImplemented │ │ │ │ │ _1_2_1 │ │ │ │ │ @@ -265,15 +265,15 @@ │ │ │ │ │ containing the Pytest configuration file, if any. To store data in a different │ │ │ │ │ location, set the storage-dir option in pyproject.toml. Data which is │ │ │ │ │ outsourced but not referenced in the source code jet has a '-new' suffix in the │ │ │ │ │ filename. │ │ │ │ │ Parameters: │ │ │ │ │ NNaammee TTyyppee DDeessccrriippttiioonn DDeeffaauulltt │ │ │ │ │ name str the name of the external stored object. rreeqquuiirreedd │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _external.py │ │ │ │ │ def __init__(self, name: str): │ │ │ │ │ """External objects are used as a representation for outsourced data. │ │ │ │ │ _7_7 You should not create them directly. │ │ │ │ │ _7_8 │ │ │ │ │ _7_9 The external data is by default stored inside │ │ │ │ │ _8_0 `<pytest_config_dir>/.inline-snapshot/external`, │ │ │ │ │ @@ -296,15 +296,15 @@ │ │ │ │ │ _9_7 raise ValueError( │ │ │ │ │ "path has to be of the form <hash>.<suffix> or │ │ │ │ │ <partial_hash>*.<suffix>" │ │ │ │ │ ) │ │ │ │ │ ____rreepprr____(()) _?¶ │ │ │ │ │ Returns the representation of the external object. │ │ │ │ │ The length of the hash can be specified in the _c_o_n_f_i_g. │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _external.py │ │ │ │ │ _1_0_3 def __repr__(self): │ │ │ │ │ _1_0_4 """Returns the representation of the external object. │ │ │ │ │ _1_0_5 │ │ │ │ │ _1_0_6 The length of the hash can be specified in the │ │ │ │ │ _1_0_7 [config](configuration.md). │ │ │ │ │ _1_0_8 """ │ │ │ ├── ./usr/share/doc/python-inline-snapshot-doc/html/pytest.html │ │ │ │ @@ -969,16 +969,16 @@ │ │ │ │ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="k">def</span> <span class="nf">test_something</span><span class="p">():</span> │ │ │ │ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> <span class="k">assert</span> <span class="mi">1</span> <span class="o">==</span> <span class="n">snapshot</span><span class="p">()</span> │ │ │ │ <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> <span class="k">assert</span> <span class="mi">2</span> <span class="o"><=</span> <span class="n">snapshot</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> │ │ │ │ </code></pre></div> │ │ │ │ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class=" -Color -Color-Bold -Color-Bold-Blue">> pytest test_something.py --inline-snapshot=create,report</span> │ │ │ │ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class=" -Color -Color-Bold">============================= test session starts ==============================</span> │ │ │ │ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ -<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.GZGVqEVxWM │ │ │ │ -<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ +<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.lpRrqOmrhn │ │ │ │ +<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>collected 1 item │ │ │ │ <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> │ │ │ │ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>test_something.py <span class=" -Color -Color-Green">. [100%]</span> │ │ │ │ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>=============================== inline snapshot ================================ │ │ │ │ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>─────────────────────────────── Create snapshots ─────────────────────────────── │ │ │ │ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>+----------------------------- test_something.py ------------------------------+ │ │ │ │ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>| @@ -2,5 +2,5 @@ | │ │ │ │ @@ -1003,51 +1003,51 @@ │ │ │ │ <a id="__codelineno-0-31" name="__codelineno-0-31" href="#__codelineno-0-31"></a>| + assert 2 <= snapshot(2) | │ │ │ │ <a id="__codelineno-0-32" name="__codelineno-0-32" href="#__codelineno-0-32"></a>+------------------------------------------------------------------------------+ │ │ │ │ <a id="__codelineno-0-33" name="__codelineno-0-33" href="#__codelineno-0-33"></a>These changes are not applied. │ │ │ │ <a id="__codelineno-0-34" name="__codelineno-0-34" href="#__codelineno-0-34"></a>Use --inline-snapshot=trim to apply them, or use the interactive mode with │ │ │ │ <a id="__codelineno-0-35" name="__codelineno-0-35" href="#__codelineno-0-35"></a>--inline-snapshot=review │ │ │ │ <a id="__codelineno-0-36" name="__codelineno-0-36" href="#__codelineno-0-36"></a> │ │ │ │ <a id="__codelineno-0-37" name="__codelineno-0-37" href="#__codelineno-0-37"></a> │ │ │ │ -<a id="__codelineno-0-38" name="__codelineno-0-38" href="#__codelineno-0-38"></a><span class=" -Color -Color-Green">============================== </span><span class=" -Color -Color-Bold -Color-Bold-Green">1 passed</span><span class=" -Color -Color-Green"> in 0.51s ===============================</span> │ │ │ │ +<a id="__codelineno-0-38" name="__codelineno-0-38" href="#__codelineno-0-38"></a><span class=" -Color -Color-Green">============================== </span><span class=" -Color -Color-Bold -Color-Bold-Green">1 passed</span><span class=" -Color -Color-Green"> in 0.82s ===============================</span> │ │ │ │ </code></pre></div> │ │ │ │ <h2 id="-inline-snapshotshort-report">--inline-snapshot=short-report<a class="headerlink" href="#-inline-snapshotshort-report" title="Permanent link">¶</a></h2> │ │ │ │ <p>give a short report over which changes can be made to the snapshots</p> │ │ │ │ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class=" -Color -Color-Bold -Color-Bold-Blue">> pytest test_something.py --inline-snapshot=short-report</span> │ │ │ │ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class=" -Color -Color-Bold">============================= test session starts ==============================</span> │ │ │ │ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ -<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.GmIm9FDPUH │ │ │ │ -<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ +<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.STPxwcG61L │ │ │ │ +<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>collected 1 item │ │ │ │ <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> │ │ │ │ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>test_something.py <span class=" -Color -Color-Green">.</span><span class=" -Color -Color-Red">E [100%]</span> │ │ │ │ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> │ │ │ │ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>==================================== ERRORS ==================================== │ │ │ │ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class=" -Color -Color-Bold -Color-Bold-Red">_____________________ ERROR at teardown of test_something ______________________</span> │ │ │ │ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>your snapshot is missing one value. │ │ │ │ <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a>=============================== inline snapshot ================================ │ │ │ │ <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a>Info: one snapshot can be trimmed (--inline-snapshot=trim) │ │ │ │ <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a>Error: one snapshot is missing a value (--inline-snapshot=create) │ │ │ │ <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a> │ │ │ │ <a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a>You can also use --inline-snapshot=review to approve the changes interactively │ │ │ │ <a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a><span class=" -Color -Color-Bold -Color-Bold-Cyan">=========================== short test summary info ============================</span> │ │ │ │ <a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a><span class=" -Color -Color-Red">ERROR</span> test_something.py::<span class=" -Color -Color-Bold">test_something</span> - Failed: your snapshot is missing one value. │ │ │ │ -<a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class=" -Color -Color-Red">========================== </span><span class=" -Color -Color-Green">1 passed</span>, <span class=" -Color -Color-Bold -Color-Bold-Red">1 error</span><span class=" -Color -Color-Red"> in 0.46s ==========================</span> │ │ │ │ +<a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a><span class=" -Color -Color-Red">========================== </span><span class=" -Color -Color-Green">1 passed</span>, <span class=" -Color -Color-Bold -Color-Bold-Red">1 error</span><span class=" -Color -Color-Red"> in 0.80s ==========================</span> │ │ │ │ </code></pre></div> │ │ │ │ <div class="admonition info"> │ │ │ │ <p class="admonition-title">Info</p> │ │ │ │ <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting. │ │ │ │ This option will be replaced with <em>report</em> when this restriction is lifted.</p> │ │ │ │ </div> │ │ │ │ <h2 id="-inline-snapshotreport">--inline-snapshot=report<a class="headerlink" href="#-inline-snapshotreport" title="Permanent link">¶</a></h2> │ │ │ │ <p>Shows a diff report over which changes can be made to the snapshots</p> │ │ │ │ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class=" -Color -Color-Bold -Color-Bold-Blue">> pytest test_something.py --inline-snapshot=report</span> │ │ │ │ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class=" -Color -Color-Bold">============================= test session starts ==============================</span> │ │ │ │ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ -<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.siYONHxJ2N │ │ │ │ -<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ +<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.m6vy7VYyQc │ │ │ │ +<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>collected 1 item │ │ │ │ <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> │ │ │ │ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>test_something.py <span class=" -Color -Color-Green">.</span><span class=" -Color -Color-Red">E [100%]</span> │ │ │ │ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> │ │ │ │ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>==================================== ERRORS ==================================== │ │ │ │ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class=" -Color -Color-Bold -Color-Bold-Red">_____________________ ERROR at teardown of test_something ______________________</span> │ │ │ │ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>your snapshot is missing one value. │ │ │ │ @@ -1079,23 +1079,23 @@ │ │ │ │ <a id="__codelineno-0-38" name="__codelineno-0-38" href="#__codelineno-0-38"></a>+------------------------------------------------------------------------------+ │ │ │ │ <a id="__codelineno-0-39" name="__codelineno-0-39" href="#__codelineno-0-39"></a>These changes are not applied. │ │ │ │ <a id="__codelineno-0-40" name="__codelineno-0-40" href="#__codelineno-0-40"></a>Use --inline-snapshot=trim to apply them, or use the interactive mode with │ │ │ │ <a id="__codelineno-0-41" name="__codelineno-0-41" href="#__codelineno-0-41"></a>--inline-snapshot=review │ │ │ │ <a id="__codelineno-0-42" name="__codelineno-0-42" href="#__codelineno-0-42"></a> │ │ │ │ <a id="__codelineno-0-43" name="__codelineno-0-43" href="#__codelineno-0-43"></a><span class=" -Color -Color-Bold -Color-Bold-Cyan">=========================== short test summary info ============================</span> │ │ │ │ <a id="__codelineno-0-44" name="__codelineno-0-44" href="#__codelineno-0-44"></a><span class=" -Color -Color-Red">ERROR</span> test_something.py::<span class=" -Color -Color-Bold">test_something</span> - Failed: your snapshot is missing one value. │ │ │ │ -<a id="__codelineno-0-45" name="__codelineno-0-45" href="#__codelineno-0-45"></a><span class=" -Color -Color-Red">========================== </span><span class=" -Color -Color-Green">1 passed</span>, <span class=" -Color -Color-Bold -Color-Bold-Red">1 error</span><span class=" -Color -Color-Red"> in 0.46s ==========================</span> │ │ │ │ +<a id="__codelineno-0-45" name="__codelineno-0-45" href="#__codelineno-0-45"></a><span class=" -Color -Color-Red">========================== </span><span class=" -Color -Color-Green">1 passed</span>, <span class=" -Color -Color-Bold -Color-Bold-Red">1 error</span><span class=" -Color -Color-Red"> in 0.78s ==========================</span> │ │ │ │ </code></pre></div> │ │ │ │ <h2 id="-inline-snapshotreview">--inline-snapshot=review<a class="headerlink" href="#-inline-snapshotreview" title="Permanent link">¶</a></h2> │ │ │ │ <p>Shows a diff report for each category and ask if you want to apply the changes</p> │ │ │ │ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class=" -Color -Color-Bold -Color-Bold-Blue">> pytest test_something.py --inline-snapshot=review</span> │ │ │ │ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class=" -Color -Color-Bold">============================= test session starts ==============================</span> │ │ │ │ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ -<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.pdpnCdJwR4 │ │ │ │ -<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ +<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>rootdir: /tmp/tmp.LU2pcziyBH │ │ │ │ +<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>collected 1 item │ │ │ │ <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> │ │ │ │ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>test_something.py <span class=" -Color -Color-Green">. [100%]</span> │ │ │ │ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>=============================== inline snapshot ================================ │ │ │ │ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>─────────────────────────────── Create snapshots ─────────────────────────────── │ │ │ │ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>+----------------------------- test_something.py ------------------------------+ │ │ │ │ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>| @@ -2,5 +2,5 @@ | │ │ │ │ @@ -1116,15 +1116,15 @@ │ │ │ │ <a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a>| def test_something(): | │ │ │ │ <a id="__codelineno-0-28" name="__codelineno-0-28" href="#__codelineno-0-28"></a>| assert 1 == snapshot(1) | │ │ │ │ <a id="__codelineno-0-29" name="__codelineno-0-29" href="#__codelineno-0-29"></a>| - assert 2 <= snapshot(5) | │ │ │ │ <a id="__codelineno-0-30" name="__codelineno-0-30" href="#__codelineno-0-30"></a>| + assert 2 <= snapshot(2) | │ │ │ │ <a id="__codelineno-0-31" name="__codelineno-0-31" href="#__codelineno-0-31"></a>+------------------------------------------------------------------------------+ │ │ │ │ <a id="__codelineno-0-32" name="__codelineno-0-32" href="#__codelineno-0-32"></a>do you want to trim these snapshots? [y/n] (n): │ │ │ │ <a id="__codelineno-0-33" name="__codelineno-0-33" href="#__codelineno-0-33"></a> │ │ │ │ -<a id="__codelineno-0-34" name="__codelineno-0-34" href="#__codelineno-0-34"></a><span class=" -Color -Color-Green">============================== </span><span class=" -Color -Color-Bold -Color-Bold-Green">1 passed</span><span class=" -Color -Color-Green"> in 0.49s ===============================</span> │ │ │ │ +<a id="__codelineno-0-34" name="__codelineno-0-34" href="#__codelineno-0-34"></a><span class=" -Color -Color-Green">============================== </span><span class=" -Color -Color-Bold -Color-Bold-Green">1 passed</span><span class=" -Color -Color-Green"> in 0.82s ===============================</span> │ │ │ │ </code></pre></div> │ │ │ │ <h2 id="-inline-snapshotdisable">--inline-snapshot=disable<a class="headerlink" href="#-inline-snapshotdisable" title="Permanent link">¶</a></h2> │ │ │ │ <p>Disables all the snapshot logic. <code>snapshot(x)</code> will just return <code>x</code>. │ │ │ │ This can be used if you think exclude that snapshot logic causes a problem in your tests, or if you want to speedup your CI.</p> │ │ │ │ <div class="admonition info"> │ │ │ │ <p class="admonition-title">deprecation</p> │ │ │ │ <p>This option was previously called <code>--inline-snapshot-disable</code></p> │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -66,17 +66,17 @@ │ │ │ │ │ def test_something(): │ │ │ │ │ assert 1 == snapshot() │ │ │ │ │ assert 2 <= snapshot(5) │ │ │ │ │ > pytest test_something.py --inline-snapshot=create,report │ │ │ │ │ ============================= test session starts │ │ │ │ │ ============================== │ │ │ │ │ platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ │ -rootdir: /tmp/tmp.GZGVqEVxWM │ │ │ │ │ -plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard- │ │ │ │ │ -4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ │ +rootdir: /tmp/tmp.lpRrqOmrhn │ │ │ │ │ +plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, │ │ │ │ │ +hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ │ collected 1 item │ │ │ │ │ │ │ │ │ │ test_something.py . [100%] │ │ │ │ │ =============================== inline snapshot │ │ │ │ │ ================================ │ │ │ │ │ ─────────────────────────────── Create snapshots │ │ │ │ │ ─────────────────────────────── │ │ │ │ │ @@ -123,25 +123,25 @@ │ │ │ │ │ +------------------------------------------------------------------------------ │ │ │ │ │ + │ │ │ │ │ These changes are not applied. │ │ │ │ │ Use --inline-snapshot=trim to apply them, or use the interactive mode with │ │ │ │ │ --inline-snapshot=review │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -============================== 1 passed in 0.51s │ │ │ │ │ +============================== 1 passed in 0.82s │ │ │ │ │ =============================== │ │ │ │ │ ********** ----iinnlliinnee--ssnnaappsshhoott==sshhoorrtt--rreeppoorrtt_?¶ ********** │ │ │ │ │ give a short report over which changes can be made to the snapshots │ │ │ │ │ > pytest test_something.py --inline-snapshot=short-report │ │ │ │ │ ============================= test session starts │ │ │ │ │ ============================== │ │ │ │ │ platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ │ -rootdir: /tmp/tmp.GmIm9FDPUH │ │ │ │ │ -plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard- │ │ │ │ │ -4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ │ +rootdir: /tmp/tmp.STPxwcG61L │ │ │ │ │ +plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, │ │ │ │ │ +hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ │ collected 1 item │ │ │ │ │ │ │ │ │ │ test_something.py .E [100%] │ │ │ │ │ │ │ │ │ │ ==================================== ERRORS │ │ │ │ │ ==================================== │ │ │ │ │ _____________________ ERROR at teardown of test_something │ │ │ │ │ @@ -153,29 +153,29 @@ │ │ │ │ │ Error: one snapshot is missing a value (--inline-snapshot=create) │ │ │ │ │ │ │ │ │ │ You can also use --inline-snapshot=review to approve the changes interactively │ │ │ │ │ =========================== short test summary info │ │ │ │ │ ============================ │ │ │ │ │ ERROR test_something.py::test_something - Failed: your snapshot is missing one │ │ │ │ │ value. │ │ │ │ │ -========================== 1 passed, 1 error in 0.46s │ │ │ │ │ +========================== 1 passed, 1 error in 0.80s │ │ │ │ │ ========================== │ │ │ │ │ Info │ │ │ │ │ short-report exists mainly to show that snapshots have changed with enabled │ │ │ │ │ pytest assert-rewriting. This option will be replaced with rreeppoorrtt when this │ │ │ │ │ restriction is lifted. │ │ │ │ │ ********** ----iinnlliinnee--ssnnaappsshhoott==rreeppoorrtt_?¶ ********** │ │ │ │ │ Shows a diff report over which changes can be made to the snapshots │ │ │ │ │ > pytest test_something.py --inline-snapshot=report │ │ │ │ │ ============================= test session starts │ │ │ │ │ ============================== │ │ │ │ │ platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ │ -rootdir: /tmp/tmp.siYONHxJ2N │ │ │ │ │ -plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard- │ │ │ │ │ -4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ │ +rootdir: /tmp/tmp.m6vy7VYyQc │ │ │ │ │ +plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, │ │ │ │ │ +hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ │ collected 1 item │ │ │ │ │ │ │ │ │ │ test_something.py .E [100%] │ │ │ │ │ │ │ │ │ │ ==================================== ERRORS │ │ │ │ │ ==================================== │ │ │ │ │ _____________________ ERROR at teardown of test_something │ │ │ │ │ @@ -233,25 +233,25 @@ │ │ │ │ │ Use --inline-snapshot=trim to apply them, or use the interactive mode with │ │ │ │ │ --inline-snapshot=review │ │ │ │ │ │ │ │ │ │ =========================== short test summary info │ │ │ │ │ ============================ │ │ │ │ │ ERROR test_something.py::test_something - Failed: your snapshot is missing one │ │ │ │ │ value. │ │ │ │ │ -========================== 1 passed, 1 error in 0.46s │ │ │ │ │ +========================== 1 passed, 1 error in 0.78s │ │ │ │ │ ========================== │ │ │ │ │ ********** ----iinnlliinnee--ssnnaappsshhoott==rreevviieeww_?¶ ********** │ │ │ │ │ Shows a diff report for each category and ask if you want to apply the changes │ │ │ │ │ > pytest test_something.py --inline-snapshot=review │ │ │ │ │ ============================= test session starts │ │ │ │ │ ============================== │ │ │ │ │ platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 │ │ │ │ │ -rootdir: /tmp/tmp.pdpnCdJwR4 │ │ │ │ │ -plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard- │ │ │ │ │ -4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1 │ │ │ │ │ +rootdir: /tmp/tmp.LU2pcziyBH │ │ │ │ │ +plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, │ │ │ │ │ +hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9 │ │ │ │ │ collected 1 item │ │ │ │ │ │ │ │ │ │ test_something.py . [100%] │ │ │ │ │ =============================== inline snapshot │ │ │ │ │ ================================ │ │ │ │ │ ─────────────────────────────── Create snapshots │ │ │ │ │ ─────────────────────────────── │ │ │ │ │ @@ -294,15 +294,15 @@ │ │ │ │ │ | │ │ │ │ │ | + assert 2 <= snapshot(2) │ │ │ │ │ | │ │ │ │ │ +------------------------------------------------------------------------------ │ │ │ │ │ + │ │ │ │ │ do you want to trim these snapshots? [y/n] (n): │ │ │ │ │ │ │ │ │ │ -============================== 1 passed in 0.49s │ │ │ │ │ +============================== 1 passed in 0.82s │ │ │ │ │ =============================== │ │ │ │ │ ********** ----iinnlliinnee--ssnnaappsshhoott==ddiissaabbllee_?¶ ********** │ │ │ │ │ Disables all the snapshot logic. snapshot(x) will just return x. This can be │ │ │ │ │ used if you think exclude that snapshot logic causes a problem in your tests, │ │ │ │ │ or if you want to speedup your CI. │ │ │ │ │ deprecation │ │ │ │ │ This option was previously called --inline-snapshot-disable │ │ │ ├── ./usr/share/doc/python-inline-snapshot-doc/html/search/search_index.json │ │ │ │ ├── Pretty-printed │ │ │ │ │┄ Similarity: 0.9970878136200718% │ │ │ │ │┄ Differences: {"'docs'": "{147: {'text': '<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the " │ │ │ │ │┄ 'output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used ' │ │ │ │ │┄ 'to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default ' │ │ │ │ │┄ '<code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the ' │ │ │ │ │┄ "recorded output</p> <code>\\'\\'</code> <code>stderr</code> <code>Snapshot[str]</code> " │ │ │ │ │┄ "<p […] │ │ │ │ │ @@ -742,25 +742,25 @@ │ │ │ │ │ { │ │ │ │ │ "location": "extra.html#inline_snapshot.extra", │ │ │ │ │ "text": "<p>The following functions are build on top of inline-snapshot and could also be implemented in an extra library.</p> <p>They are part of inline-snapshot because they are general useful and do not depend on other libraries.</p>", │ │ │ │ │ "title": "<code>inline_snapshot.extra</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "extra.html#inline_snapshot.extra.prints", │ │ │ │ │ - "text": "<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default <code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded output</p> <code>''</code> <code>stderr</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded error output</p> <code>''</code> original--inline-snapshot=createignore stdout <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nimport sys\n\n\ndef test_prints():\n with prints(stdout=snapshot(), stderr=snapshot()):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nimport sys\n\n\ndef test_prints():\n with prints(\n stdout=snapshot(\"hello world\\n\"), stderr=snapshot(\"some error\\n\")\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nfrom dirty_equals import IsStr\nimport sys\n\n\ndef test_prints():\n with prints(\n stdout=IsStr(),\n stderr=snapshot(\"some error\\n\"),\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef prints(*, stdout: Snapshot[str] = \"\", stderr: Snapshot[str] = \"\"):\n \"\"\"Uses `contextlib.redirect_stderr/stdout` to capture the output and\n compare it with the snapshots. `dirty_equals.IsStr` can be used to ignore\n the output if needed.\n\n Parameters:\n stdout: snapshot which is compared to the recorded output\n stderr: snapshot which is compared to the recorded error output\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n import sys\n\n\n def test_prints():\n with prints(stdout=snapshot(), stderr=snapshot()):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create outcome-passed=1 -->\n ``` python hl_lines=\"7 8 9\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n import sys\n\n\n def test_prints():\n with prints(\n stdout=snapshot(\"hello world\\\\n\"), stderr=snapshot(\"some error\\\\n\")\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n\n === \"ignore stdout\"\n\n <!-- inline-snapshot: outcome-passed=1 -->\n ``` python hl_lines=\"3 9 10\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n from dirty_equals import IsStr\n import sys\n\n\n def test_prints():\n with prints(\n stdout=IsStr(),\n stderr=snapshot(\"some error\\\\n\"),\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n \"\"\"\n\n with redirect_stdout(io.StringIO()) as stdout_io:\n with redirect_stderr(io.StringIO()) as stderr_io:\n yield\n\n assert stderr_io.getvalue() == stderr\n assert stdout_io.getvalue() == stdout\n</code></pre>", │ │ │ │ │ + "text": "<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default <code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded output</p> <code>''</code> <code>stderr</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded error output</p> <code>''</code> original--inline-snapshot=createignore stdout <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nimport sys\n\n\ndef test_prints():\n with prints(stdout=snapshot(), stderr=snapshot()):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nimport sys\n\n\ndef test_prints():\n with prints(\n stdout=snapshot(\"hello world\\n\"), stderr=snapshot(\"some error\\n\")\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import prints\nfrom dirty_equals import IsStr\nimport sys\n\n\ndef test_prints():\n with prints(\n stdout=IsStr(),\n stderr=snapshot(\"some error\\n\"),\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef prints(*, stdout: Snapshot[str] = \"\", stderr: Snapshot[str] = \"\"):\n \"\"\"Uses `contextlib.redirect_stderr/stdout` to capture the output and\n compare it with the snapshots. `dirty_equals.IsStr` can be used to ignore\n the output if needed.\n\n Parameters:\n stdout: snapshot which is compared to the recorded output\n stderr: snapshot which is compared to the recorded error output\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n import sys\n\n\n def test_prints():\n with prints(stdout=snapshot(), stderr=snapshot()):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create outcome-passed=1 -->\n ``` python hl_lines=\"7 8 9\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n import sys\n\n\n def test_prints():\n with prints(\n stdout=snapshot(\"hello world\\\\n\"), stderr=snapshot(\"some error\\\\n\")\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n\n === \"ignore stdout\"\n\n <!-- inline-snapshot: outcome-passed=1 -->\n ``` python hl_lines=\"3 9 10\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import prints\n from dirty_equals import IsStr\n import sys\n\n\n def test_prints():\n with prints(\n stdout=IsStr(),\n stderr=snapshot(\"some error\\\\n\"),\n ):\n print(\"hello world\")\n print(\"some error\", file=sys.stderr)\n ```\n \"\"\"\n\n with redirect_stdout(io.StringIO()) as stdout_io:\n with redirect_stderr(io.StringIO()) as stderr_io:\n yield\n\n assert stderr_io.getvalue() == stderr\n assert stdout_io.getvalue() == stdout\n</code></pre>", │ │ │ │ │ "title": "<code>prints(*, stdout='', stderr='')</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "extra.html#inline_snapshot.extra.raises", │ │ │ │ │ - "text": "<p>Check that an exception is raised.</p> <p>Parameters:</p> Name Type Description Default <code>exception</code> <code>Snapshot[str]</code> <p>snapshot which is compared with <code>f\"{type}: {message}\"</code> if an exception occured or <code>\"<no exception>\"</code> if no exception was raised.</p> required original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import raises\n\n\ndef test_raises():\n with raises(snapshot()):\n 1 / 0\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import raises\n\n\ndef test_raises():\n with raises(snapshot(\"ZeroDivisionError: division by zero\")):\n 1 / 0\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef raises(exception: Snapshot[str]):\n \"\"\"Check that an exception is raised.\n\n Parameters:\n exception: snapshot which is compared with `#!python f\"{type}: {message}\"` if an exception occured or `#!python \"<no exception>\"` if no exception was raised.\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import raises\n\n\n def test_raises():\n with raises(snapshot()):\n 1 / 0\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create outcome-passed=1 -->\n ``` python hl_lines=\"6\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import raises\n\n\n def test_raises():\n with raises(snapshot(\"ZeroDivisionError: division by zero\")):\n 1 / 0\n ```\n \"\"\"\n\n try:\n yield\n except Exception as ex:\n msg = str(ex)\n if \"\\n\" in msg:\n assert f\"{type(ex).__name__}:\\n{ex}\" == exception\n else:\n assert f\"{type(ex).__name__}: {ex}\" == exception\n else:\n assert \"<no exception>\" == exception\n</code></pre>", │ │ │ │ │ + "text": "<p>Check that an exception is raised.</p> <p>Parameters:</p> Name Type Description Default <code>exception</code> <code>Snapshot[str]</code> <p>snapshot which is compared with <code>f\"{type}: {message}\"</code> if an exception occured or <code>\"<no exception>\"</code> if no exception was raised.</p> required original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import raises\n\n\ndef test_raises():\n with raises(snapshot()):\n 1 / 0\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import raises\n\n\ndef test_raises():\n with raises(snapshot(\"ZeroDivisionError: division by zero\")):\n 1 / 0\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef raises(exception: Snapshot[str]):\n \"\"\"Check that an exception is raised.\n\n Parameters:\n exception: snapshot which is compared with `#!python f\"{type}: {message}\"` if an exception occured or `#!python \"<no exception>\"` if no exception was raised.\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import raises\n\n\n def test_raises():\n with raises(snapshot()):\n 1 / 0\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create outcome-passed=1 -->\n ``` python hl_lines=\"6\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import raises\n\n\n def test_raises():\n with raises(snapshot(\"ZeroDivisionError: division by zero\")):\n 1 / 0\n ```\n \"\"\"\n\n try:\n yield\n except Exception as ex:\n msg = str(ex)\n if \"\\n\" in msg:\n assert f\"{type(ex).__name__}:\\n{ex}\" == exception\n else:\n assert f\"{type(ex).__name__}: {ex}\" == exception\n else:\n assert \"<no exception>\" == exception\n</code></pre>", │ │ │ │ │ "title": "<code>raises(exception)</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "extra.html#inline_snapshot.extra.warns", │ │ │ │ │ - "text": "<p>Captures warnings with <code>warnings.catch_warnings</code> and compares them against expected warnings.</p> <p>Parameters:</p> Name Type Description Default <code>expected_warnings</code> <code>Snapshot[List[Warning]]</code> <p>Snapshot containing a list of expected warnings.</p> required <code>include_line</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(linenumber, message)</code>.</p> <code>False</code> <code>include_file</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(filename, message)</code>.</p> <code>False</code> <p>The format of the expected warning:</p> <ul> <li><code>(filename, linenumber, message)</code> if both <code>include_line</code> and <code>include_file</code> are <code>True</code>.</li> <li><code>(linenumber, message)</code> if only <code>include_line</code> is <code>True</code>.</li> <li><code>(filename, message)</code> if only <code>include_file</code> is <code>True</code>.</li> <li>A string <code>message</code> if both are <code>False</code>.</li> </ul> original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import warns\nfrom warnings import warn\n\n\ndef test_warns():\n with warns(snapshot(), include_line=True):\n warn(\"some problem\")\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import warns\nfrom warnings import warn\n\n\ndef test_warns():\n with warns(snapshot([(8, \"UserWarning: some problem\")]), include_line=True):\n warn(\"some problem\")\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef warns(\n expected_warnings: Snapshot[List[Warning]],\n /,\n include_line: bool = False,\n include_file: bool = False,\n):\n \"\"\"\n Captures warnings with `warnings.catch_warnings` and compares them against expected warnings.\n\n Parameters:\n expected_warnings: Snapshot containing a list of expected warnings.\n include_line: If `True`, each expected warning is a tuple `(linenumber, message)`.\n include_file: If `True`, each expected warning is a tuple `(filename, message)`.\n\n The format of the expected warning:\n\n - `(filename, linenumber, message)` if both `include_line` and `include_file` are `True`.\n - `(linenumber, message)` if only `include_line` is `True`.\n - `(filename, message)` if only `include_file` is `True`.\n - A string `message` if both are `False`.\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import warns\n from warnings import warn\n\n\n def test_warns():\n with warns(snapshot(), include_line=True):\n warn(\"some problem\")\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create fix outcome-passed=1 -->\n ``` python hl_lines=\"7\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import warns\n from warnings import warn\n\n\n def test_warns():\n with warns(snapshot([(8, \"UserWarning: some problem\")]), include_line=True):\n warn(\"some problem\")\n ```\n \"\"\"\n with warnings.catch_warnings(record=True) as result:\n warnings.simplefilter(\"always\")\n yield\n\n def make_warning(w):\n message = f\"{w.category.__name__}: {w.message}\"\n if not include_line and not include_file:\n return message\n message = (message,)\n\n if include_line:\n message = (w.lineno, *message)\n if include_file:\n message = (w.filename, *message)\n\n return message\n\n assert [make_warning(w) for w in result] == expected_warnings\n</code></pre>", │ │ │ │ │ + "text": "<p>Captures warnings with <code>warnings.catch_warnings</code> and compares them against expected warnings.</p> <p>Parameters:</p> Name Type Description Default <code>expected_warnings</code> <code>Snapshot[List[Warning]]</code> <p>Snapshot containing a list of expected warnings.</p> required <code>include_line</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(linenumber, message)</code>.</p> <code>False</code> <code>include_file</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(filename, message)</code>.</p> <code>False</code> <p>The format of the expected warning:</p> <ul> <li><code>(filename, linenumber, message)</code> if both <code>include_line</code> and <code>include_file</code> are <code>True</code>.</li> <li><code>(linenumber, message)</code> if only <code>include_line</code> is <code>True</code>.</li> <li><code>(filename, message)</code> if only <code>include_file</code> is <code>True</code>.</li> <li>A string <code>message</code> if both are <code>False</code>.</li> </ul> original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import warns\nfrom warnings import warn\n\n\ndef test_warns():\n with warns(snapshot(), include_line=True):\n warn(\"some problem\")\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\nfrom inline_snapshot.extra import warns\nfrom warnings import warn\n\n\ndef test_warns():\n with warns(snapshot([(8, \"UserWarning: some problem\")]), include_line=True):\n warn(\"some problem\")\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\ndef warns(\n expected_warnings: Snapshot[List[Warning]],\n /,\n include_line: bool = False,\n include_file: bool = False,\n):\n \"\"\"\n Captures warnings with `warnings.catch_warnings` and compares them against expected warnings.\n\n Parameters:\n expected_warnings: Snapshot containing a list of expected warnings.\n include_line: If `True`, each expected warning is a tuple `(linenumber, message)`.\n include_file: If `True`, each expected warning is a tuple `(filename, message)`.\n\n The format of the expected warning:\n\n - `(filename, linenumber, message)` if both `include_line` and `include_file` are `True`.\n - `(linenumber, message)` if only `include_line` is `True`.\n - `(filename, message)` if only `include_file` is `True`.\n - A string `message` if both are `False`.\n\n === \"original\"\n\n <!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 -->\n ``` python\n from inline_snapshot import snapshot\n from inline_snapshot.extra import warns\n from warnings import warn\n\n\n def test_warns():\n with warns(snapshot(), include_line=True):\n warn(\"some problem\")\n ```\n\n === \"--inline-snapshot=create\"\n\n <!-- inline-snapshot: create fix outcome-passed=1 -->\n ``` python hl_lines=\"7\"\n from inline_snapshot import snapshot\n from inline_snapshot.extra import warns\n from warnings import warn\n\n\n def test_warns():\n with warns(snapshot([(8, \"UserWarning: some problem\")]), include_line=True):\n warn(\"some problem\")\n ```\n \"\"\"\n with warnings.catch_warnings(record=True) as result:\n warnings.simplefilter(\"always\")\n yield\n\n def make_warning(w):\n message = f\"{w.category.__name__}: {w.message}\"\n if not include_line and not include_file:\n return message\n message = (message,)\n\n if include_line:\n message = (w.lineno, *message)\n if include_file:\n message = (w.filename, *message)\n\n return message\n\n assert [make_warning(w) for w in result] == expected_warnings\n</code></pre>", │ │ │ │ │ "title": "<code>warns(expected_warnings, /, include_line=False, include_file=False)</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "getitem_snapshot.html", │ │ │ │ │ "text": "", │ │ │ │ │ "title": "snapshot()[key]" │ │ │ │ │ }, │ │ │ │ │ @@ -822,65 +822,65 @@ │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#api", │ │ │ │ │ "text": "", │ │ │ │ │ "title": "API" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#inline_snapshot.outsource", │ │ │ │ │ - "text": "<p>Outsource some data into an external file.</p> <pre><code>>>> png_data = b\"some_bytes\" # should be the replaced with your actual data\n>>> outsource(png_data, suffix=\".png\")\nexternal(\"212974ed1835*.png\")\n</code></pre> <p>Parameters:</p> Name Type Description Default <code>data</code> <code>Union[str, bytes]</code> <p>data which should be outsourced. strings are encoded with <code>\"utf-8\"</code>.</p> required <code>suffix</code> <code>Optional[str]</code> <p>overwrite file suffix. The default is <code>\".bin\"</code> if data is an instance of <code>bytes</code> and <code>\".txt\"</code> for <code>str</code>.</p> <code>None</code> <p>Returns:</p> Type Description <code>external</code> <p>The external data.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) -> external:\n \"\"\"Outsource some data into an external file.\n\n ``` pycon\n >>> png_data = b\"some_bytes\" # should be the replaced with your actual data\n >>> outsource(png_data, suffix=\".png\")\n external(\"212974ed1835*.png\")\n\n ```\n\n Parameters:\n data: data which should be outsourced. strings are encoded with `\"utf-8\"`.\n\n suffix: overwrite file suffix. The default is `\".bin\"` if data is an instance of `#!python bytes` and `\".txt\"` for `#!python str`.\n\n Returns:\n The external data.\n \"\"\"\n if isinstance(data, str):\n data = data.encode(\"utf-8\")\n if suffix is None:\n suffix = \".txt\"\n\n elif isinstance(data, bytes):\n if suffix is None:\n suffix = \".bin\"\n else:\n raise TypeError(\"data has to be of type bytes | str\")\n\n if not suffix or suffix[0] != \".\":\n raise ValueError(\"suffix has to start with a '.' like '.png'\")\n\n m = hashlib.sha256()\n m.update(data)\n hash = m.hexdigest()\n\n assert storage is not None\n\n name = hash + suffix\n\n if not storage.lookup_all(name):\n path = hash + \"-new\" + suffix\n storage.save(path, data)\n\n return external(name)\n</code></pre>", │ │ │ │ │ + "text": "<p>Outsource some data into an external file.</p> <pre><code>>>> png_data = b\"some_bytes\" # should be the replaced with your actual data\n>>> outsource(png_data, suffix=\".png\")\nexternal(\"212974ed1835*.png\")\n</code></pre> <p>Parameters:</p> Name Type Description Default <code>data</code> <code>Union[str, bytes]</code> <p>data which should be outsourced. strings are encoded with <code>\"utf-8\"</code>.</p> required <code>suffix</code> <code>Optional[str]</code> <p>overwrite file suffix. The default is <code>\".bin\"</code> if data is an instance of <code>bytes</code> and <code>\".txt\"</code> for <code>str</code>.</p> <code>None</code> <p>Returns:</p> Type Description <code>external</code> <p>The external data.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) -> external:\n \"\"\"Outsource some data into an external file.\n\n ``` pycon\n >>> png_data = b\"some_bytes\" # should be the replaced with your actual data\n >>> outsource(png_data, suffix=\".png\")\n external(\"212974ed1835*.png\")\n\n ```\n\n Parameters:\n data: data which should be outsourced. strings are encoded with `\"utf-8\"`.\n\n suffix: overwrite file suffix. The default is `\".bin\"` if data is an instance of `#!python bytes` and `\".txt\"` for `#!python str`.\n\n Returns:\n The external data.\n \"\"\"\n if isinstance(data, str):\n data = data.encode(\"utf-8\")\n if suffix is None:\n suffix = \".txt\"\n\n elif isinstance(data, bytes):\n if suffix is None:\n suffix = \".bin\"\n else:\n raise TypeError(\"data has to be of type bytes | str\")\n\n if not suffix or suffix[0] != \".\":\n raise ValueError(\"suffix has to start with a '.' like '.png'\")\n\n m = hashlib.sha256()\n m.update(data)\n hash = m.hexdigest()\n\n assert storage is not None\n\n name = hash + suffix\n\n if not storage.lookup_all(name):\n path = hash + \"-new\" + suffix\n storage.save(path, data)\n\n return external(name)\n</code></pre>", │ │ │ │ │ "title": "<code>inline_snapshot.outsource(data, *, suffix=None)</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#inline_snapshot.external", │ │ │ │ │ - "text": "Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>class external:\n def __init__(self, name: str):\n \"\"\"External objects are used as a representation for outsourced data.\n You should not create them directly.\n\n The external data is by default stored inside `<pytest_config_dir>/.inline-snapshot/external`,\n where `<pytest_config_dir>` is replaced by the directory containing the Pytest configuration file, if any.\n To store data in a different location, set the `storage-dir` option in pyproject.toml.\n Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\n\n Parameters:\n name: the name of the external stored object.\n \"\"\"\n\n m = re.fullmatch(r\"([0-9a-fA-F]*)\\*?(\\.[a-zA-Z0-9]*)\", name)\n\n if m:\n self._hash, self._suffix = m.groups()\n else:\n raise ValueError(\n \"path has to be of the form <hash>.<suffix> or <partial_hash>*.<suffix>\"\n )\n\n @property\n def _path(self):\n return f\"{self._hash}*{self._suffix}\"\n\n def __repr__(self):\n \"\"\"Returns the representation of the external object.\n\n The length of the hash can be specified in the\n [config](configuration.md).\n \"\"\"\n hash = self._hash[: _config.config.hash_length]\n\n if len(hash) == 64:\n return f'external(\"{hash}{self._suffix}\")'\n else:\n return f'external(\"{hash}*{self._suffix}\")'\n\n def __eq__(self, other):\n \"\"\"Two external objects are equal if they have the same hash and\n suffix.\"\"\"\n if not isinstance(other, external):\n return NotImplemented\n\n min_hash_len = min(len(self._hash), len(other._hash))\n\n if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\n return False\n\n if self._suffix != other._suffix:\n return False\n\n return True\n\n def _load_value(self):\n assert storage is not None\n return storage.read(self._path)\n</code></pre>", │ │ │ │ │ + "text": "Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>class external:\n def __init__(self, name: str):\n \"\"\"External objects are used as a representation for outsourced data.\n You should not create them directly.\n\n The external data is by default stored inside `<pytest_config_dir>/.inline-snapshot/external`,\n where `<pytest_config_dir>` is replaced by the directory containing the Pytest configuration file, if any.\n To store data in a different location, set the `storage-dir` option in pyproject.toml.\n Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\n\n Parameters:\n name: the name of the external stored object.\n \"\"\"\n\n m = re.fullmatch(r\"([0-9a-fA-F]*)\\*?(\\.[a-zA-Z0-9]*)\", name)\n\n if m:\n self._hash, self._suffix = m.groups()\n else:\n raise ValueError(\n \"path has to be of the form <hash>.<suffix> or <partial_hash>*.<suffix>\"\n )\n\n @property\n def _path(self):\n return f\"{self._hash}*{self._suffix}\"\n\n def __repr__(self):\n \"\"\"Returns the representation of the external object.\n\n The length of the hash can be specified in the\n [config](configuration.md).\n \"\"\"\n hash = self._hash[: _config.config.hash_length]\n\n if len(hash) == 64:\n return f'external(\"{hash}{self._suffix}\")'\n else:\n return f'external(\"{hash}*{self._suffix}\")'\n\n def __eq__(self, other):\n \"\"\"Two external objects are equal if they have the same hash and\n suffix.\"\"\"\n if not isinstance(other, external):\n return NotImplemented\n\n min_hash_len = min(len(self._hash), len(other._hash))\n\n if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\n return False\n\n if self._suffix != other._suffix:\n return False\n\n return True\n\n def _load_value(self):\n assert storage is not None\n return storage.read(self._path)\n</code></pre>", │ │ │ │ │ "title": "<code>inline_snapshot.external</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#inline_snapshot.external.__eq__", │ │ │ │ │ - "text": "<p>Two external objects are equal if they have the same hash and suffix.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __eq__(self, other):\n \"\"\"Two external objects are equal if they have the same hash and\n suffix.\"\"\"\n if not isinstance(other, external):\n return NotImplemented\n\n min_hash_len = min(len(self._hash), len(other._hash))\n\n if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\n return False\n\n if self._suffix != other._suffix:\n return False\n\n return True\n</code></pre>", │ │ │ │ │ + "text": "<p>Two external objects are equal if they have the same hash and suffix.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __eq__(self, other):\n \"\"\"Two external objects are equal if they have the same hash and\n suffix.\"\"\"\n if not isinstance(other, external):\n return NotImplemented\n\n min_hash_len = min(len(self._hash), len(other._hash))\n\n if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\n return False\n\n if self._suffix != other._suffix:\n return False\n\n return True\n</code></pre>", │ │ │ │ │ "title": "<code>__eq__(other)</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#inline_snapshot.external.__init__", │ │ │ │ │ - "text": "<p>External objects are used as a representation for outsourced data. You should not create them directly.</p> <p>The external data is by default stored inside <code><pytest_config_dir>/.inline-snapshot/external</code>, where <code><pytest_config_dir></code> is replaced by the directory containing the Pytest configuration file, if any. To store data in a different location, set the <code>storage-dir</code> option in pyproject.toml. Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.</p> <p>Parameters:</p> Name Type Description Default <code>name</code> <code>str</code> <p>the name of the external stored object.</p> required Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __init__(self, name: str):\n \"\"\"External objects are used as a representation for outsourced data.\n You should not create them directly.\n\n The external data is by default stored inside `<pytest_config_dir>/.inline-snapshot/external`,\n where `<pytest_config_dir>` is replaced by the directory containing the Pytest configuration file, if any.\n To store data in a different location, set the `storage-dir` option in pyproject.toml.\n Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\n\n Parameters:\n name: the name of the external stored object.\n \"\"\"\n\n m = re.fullmatch(r\"([0-9a-fA-F]*)\\*?(\\.[a-zA-Z0-9]*)\", name)\n\n if m:\n self._hash, self._suffix = m.groups()\n else:\n raise ValueError(\n \"path has to be of the form <hash>.<suffix> or <partial_hash>*.<suffix>\"\n )\n</code></pre>", │ │ │ │ │ + "text": "<p>External objects are used as a representation for outsourced data. You should not create them directly.</p> <p>The external data is by default stored inside <code><pytest_config_dir>/.inline-snapshot/external</code>, where <code><pytest_config_dir></code> is replaced by the directory containing the Pytest configuration file, if any. To store data in a different location, set the <code>storage-dir</code> option in pyproject.toml. Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.</p> <p>Parameters:</p> Name Type Description Default <code>name</code> <code>str</code> <p>the name of the external stored object.</p> required Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __init__(self, name: str):\n \"\"\"External objects are used as a representation for outsourced data.\n You should not create them directly.\n\n The external data is by default stored inside `<pytest_config_dir>/.inline-snapshot/external`,\n where `<pytest_config_dir>` is replaced by the directory containing the Pytest configuration file, if any.\n To store data in a different location, set the `storage-dir` option in pyproject.toml.\n Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\n\n Parameters:\n name: the name of the external stored object.\n \"\"\"\n\n m = re.fullmatch(r\"([0-9a-fA-F]*)\\*?(\\.[a-zA-Z0-9]*)\", name)\n\n if m:\n self._hash, self._suffix = m.groups()\n else:\n raise ValueError(\n \"path has to be of the form <hash>.<suffix> or <partial_hash>*.<suffix>\"\n )\n</code></pre>", │ │ │ │ │ "title": "<code>__init__(name)</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#inline_snapshot.external.__repr__", │ │ │ │ │ - "text": "<p>Returns the representation of the external object.</p> <p>The length of the hash can be specified in the config.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __repr__(self):\n \"\"\"Returns the representation of the external object.\n\n The length of the hash can be specified in the\n [config](configuration.md).\n \"\"\"\n hash = self._hash[: _config.config.hash_length]\n\n if len(hash) == 64:\n return f'external(\"{hash}{self._suffix}\")'\n else:\n return f'external(\"{hash}*{self._suffix}\")'\n</code></pre>", │ │ │ │ │ + "text": "<p>Returns the representation of the external object.</p> <p>The length of the hash can be specified in the config.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __repr__(self):\n \"\"\"Returns the representation of the external object.\n\n The length of the hash can be specified in the\n [config](configuration.md).\n \"\"\"\n hash = self._hash[: _config.config.hash_length]\n\n if len(hash) == 64:\n return f'external(\"{hash}{self._suffix}\")'\n else:\n return f'external(\"{hash}*{self._suffix}\")'\n</code></pre>", │ │ │ │ │ "title": "<code>__repr__()</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "outsource.html#pytest-options", │ │ │ │ │ "text": "<p>It interacts with the following <code>--inline-snapshot</code> flags:</p> <ul> <li><code>trim</code> removes every snapshots form the storage which is not referenced with <code>external(...)</code> in the code.</li> </ul>", │ │ │ │ │ "title": "pytest options" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html", │ │ │ │ │ "text": "<p>inline-snapshot provides one pytest option with different flags (create, fix, trim, update, short-report, report, disable).</p> <p>Snapshot comparisons return always <code>True</code> if you use one of the flags create, fix or review. This is necessary because the whole test needs to be run to fix all snapshots like in this case:</p> <pre><code>from inline_snapshot import snapshot\n\n\ndef test_something():\n assert 1 == snapshot(5)\n assert 2 <= snapshot(5)\n</code></pre> <p>Note</p> <p>Every flag with the exception of disable and short-report disables the pytest assert-rewriting.</p>", │ │ │ │ │ "title": "pytest integration" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html#-inline-snapshotcreatefixtrimupdate", │ │ │ │ │ - "text": "<p>Approve the changes of the given category. These flags can be combined with report and review.</p> test_something.py<pre><code>from inline_snapshot import snapshot\n\n\ndef test_something():\n assert 1 == snapshot()\n assert 2 <= snapshot(5)\n</code></pre> <pre><code>> pytest test_something.py --inline-snapshot=create,report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.GZGVqEVxWM\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\ncollected 1 item\n\ntest_something.py . [100%]\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\nThese changes will be applied, because you used --inline-snapshot=create\n\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot(1) |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n\n============================== 1 passed in 0.51s ===============================\n</code></pre>", │ │ │ │ │ + "text": "<p>Approve the changes of the given category. These flags can be combined with report and review.</p> test_something.py<pre><code>from inline_snapshot import snapshot\n\n\ndef test_something():\n assert 1 == snapshot()\n assert 2 <= snapshot(5)\n</code></pre> <pre><code>> pytest test_something.py --inline-snapshot=create,report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.lpRrqOmrhn\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\ncollected 1 item\n\ntest_something.py . [100%]\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\nThese changes will be applied, because you used --inline-snapshot=create\n\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot(1) |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n\n============================== 1 passed in 0.82s ===============================\n</code></pre>", │ │ │ │ │ "title": "--inline-snapshot=create,fix,trim,update" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html#-inline-snapshotshort-report", │ │ │ │ │ - "text": "<p>give a short report over which changes can be made to the snapshots</p> <pre><code>> pytest test_something.py --inline-snapshot=short-report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.GmIm9FDPUH\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\ncollected 1 item\n\ntest_something.py .E [100%]\n\n==================================== ERRORS ====================================\n_____________________ ERROR at teardown of test_something ______________________\nyour snapshot is missing one value.\n=============================== inline snapshot ================================\nInfo: one snapshot can be trimmed (--inline-snapshot=trim)\nError: one snapshot is missing a value (--inline-snapshot=create)\n\nYou can also use --inline-snapshot=review to approve the changes interactively\n=========================== short test summary info ============================\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\n========================== 1 passed, 1 error in 0.46s ==========================\n</code></pre> <p>Info</p> <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting. This option will be replaced with report when this restriction is lifted.</p>", │ │ │ │ │ + "text": "<p>give a short report over which changes can be made to the snapshots</p> <pre><code>> pytest test_something.py --inline-snapshot=short-report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.STPxwcG61L\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\ncollected 1 item\n\ntest_something.py .E [100%]\n\n==================================== ERRORS ====================================\n_____________________ ERROR at teardown of test_something ______________________\nyour snapshot is missing one value.\n=============================== inline snapshot ================================\nInfo: one snapshot can be trimmed (--inline-snapshot=trim)\nError: one snapshot is missing a value (--inline-snapshot=create)\n\nYou can also use --inline-snapshot=review to approve the changes interactively\n=========================== short test summary info ============================\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\n========================== 1 passed, 1 error in 0.80s ==========================\n</code></pre> <p>Info</p> <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting. This option will be replaced with report when this restriction is lifted.</p>", │ │ │ │ │ "title": "--inline-snapshot=short-report" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html#-inline-snapshotreport", │ │ │ │ │ - "text": "<p>Shows a diff report over which changes can be made to the snapshots</p> <pre><code>> pytest test_something.py --inline-snapshot=report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.siYONHxJ2N\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\ncollected 1 item\n\ntest_something.py .E [100%]\n\n==================================== ERRORS ====================================\n_____________________ ERROR at teardown of test_something ______________________\nyour snapshot is missing one value.\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=create to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot() |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n=========================== short test summary info ============================\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\n========================== 1 passed, 1 error in 0.46s ==========================\n</code></pre>", │ │ │ │ │ + "text": "<p>Shows a diff report over which changes can be made to the snapshots</p> <pre><code>> pytest test_something.py --inline-snapshot=report\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.m6vy7VYyQc\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\ncollected 1 item\n\ntest_something.py .E [100%]\n\n==================================== ERRORS ====================================\n_____________________ ERROR at teardown of test_something ______________________\nyour snapshot is missing one value.\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=create to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot() |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\nThese changes are not applied.\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \n--inline-snapshot=review\n\n=========================== short test summary info ============================\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\n========================== 1 passed, 1 error in 0.78s ==========================\n</code></pre>", │ │ │ │ │ "title": "--inline-snapshot=report" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html#-inline-snapshotreview", │ │ │ │ │ - "text": "<p>Shows a diff report for each category and ask if you want to apply the changes</p> <pre><code>> pytest test_something.py --inline-snapshot=review\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.pdpnCdJwR4\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\ncollected 1 item\n\ntest_something.py . [100%]\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\ndo you want to create these snapshots? [y/n] (n): \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot(1) |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\ndo you want to trim these snapshots? [y/n] (n): \n\n============================== 1 passed in 0.49s ===============================\n</code></pre>", │ │ │ │ │ + "text": "<p>Shows a diff report for each category and ask if you want to apply the changes</p> <pre><code>> pytest test_something.py --inline-snapshot=review\n============================= test session starts ==============================\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\nrootdir: /tmp/tmp.LU2pcziyBH\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\ncollected 1 item\n\ntest_something.py . [100%]\n=============================== inline snapshot ================================\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -2,5 +2,5 @@ |\n| |\n| |\n| |\n| def test_something(): |\n| - assert 1 == snapshot() |\n| + assert 1 == snapshot(1) |\n| assert 2 <= snapshot(5) |\n+------------------------------------------------------------------------------+\ndo you want to create these snapshots? [y/n] (n): \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Trim snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n+----------------------------- test_something.py ------------------------------+\n| @@ -3,4 +3,4 @@ |\n| |\n| |\n| def test_something(): |\n| assert 1 == snapshot(1) |\n| - assert 2 <= snapshot(5) |\n| + assert 2 <= snapshot(2) |\n+------------------------------------------------------------------------------+\ndo you want to trim these snapshots? [y/n] (n): \n\n============================== 1 passed in 0.82s ===============================\n</code></pre>", │ │ │ │ │ "title": "--inline-snapshot=review" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "pytest.html#-inline-snapshotdisable", │ │ │ │ │ "text": "<p>Disables all the snapshot logic. <code>snapshot(x)</code> will just return <code>x</code>. This can be used if you think exclude that snapshot logic causes a problem in your tests, or if you want to speedup your CI.</p> <p>deprecation</p> <p>This option was previously called <code>--inline-snapshot-disable</code></p>", │ │ │ │ │ "title": "--inline-snapshot=disable" │ │ │ │ │ }, │ │ │ │ │ @@ -932,12 +932,12 @@ │ │ │ │ │ { │ │ │ │ │ "location": "types.html#inline_snapshot.Category", │ │ │ │ │ "text": "<p>See categories</p>", │ │ │ │ │ "title": "<code>Category = Literal['update', 'fix', 'create', 'trim']</code> <code>module-attribute</code>" │ │ │ │ │ }, │ │ │ │ │ { │ │ │ │ │ "location": "types.html#inline_snapshot.Snapshot", │ │ │ │ │ - "text": "<p>Can be used to annotate function arguments which accept snapshot values.</p> <p>You can annotate function arguments with <code>Snapshot[T]</code> to declare that a snapshot-value can be passed as function argument. <code>Snapshot[T]</code> is a type alias for <code>T</code>, which allows you to pass <code>int</code> values instead of <code>int</code> snapshots.</p> <p>Example:</p> <pre><code>from typing import Optional\nfrom inline_snapshot import snapshot, Snapshot\n\n# required snapshots\n\n\ndef check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\n assert lower <= value <= upper\n\n\ndef test_numbers():\n for c in \"hello world\":\n check_in_bounds(ord(c), snapshot(32), snapshot(119))\n\n # use with normal values\n check_in_bounds(5, 0, 10)\n\n\n# optional snapshots\n\n\ndef check_container(\n value,\n *,\n value_repr: Optional[Snapshot[str]] = None,\n length: Optional[Snapshot[int]] = None\n):\n if value_repr is not None:\n assert repr(value) == value_repr\n\n if length is not None:\n assert len(value) == length\n\n\ndef test_container():\n check_container([1, 2], value_repr=snapshot(\"[1, 2]\"), length=snapshot(2))\n\n check_container({1, 1}, length=snapshot(1))\n</code></pre> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_types.py</code> <pre><code>class Snapshot(Generic[T]):\n \"\"\"Can be used to annotate function arguments which accept snapshot\n values.\n\n You can annotate function arguments with `Snapshot[T]` to declare that a snapshot-value can be passed as function argument.\n `Snapshot[T]` is a type alias for `T`, which allows you to pass `int` values instead of `int` snapshots.\n\n\n Example:\n <!-- inline-snapshot: create fix trim first_block outcome-passed=2 -->\n ``` python\n from typing import Optional\n from inline_snapshot import snapshot, Snapshot\n\n # required snapshots\n\n\n def check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\n assert lower <= value <= upper\n\n\n def test_numbers():\n for c in \"hello world\":\n check_in_bounds(ord(c), snapshot(32), snapshot(119))\n\n # use with normal values\n check_in_bounds(5, 0, 10)\n\n\n # optional snapshots\n\n\n def check_container(\n value,\n *,\n value_repr: Optional[Snapshot[str]] = None,\n length: Optional[Snapshot[int]] = None\n ):\n if value_repr is not None:\n assert repr(value) == value_repr\n\n if length is not None:\n assert len(value) == length\n\n\n def test_container():\n check_container([1, 2], value_repr=snapshot(\"[1, 2]\"), length=snapshot(2))\n\n check_container({1, 1}, length=snapshot(1))\n ```\n \"\"\"\n</code></pre>", │ │ │ │ │ + "text": "<p>Can be used to annotate function arguments which accept snapshot values.</p> <p>You can annotate function arguments with <code>Snapshot[T]</code> to declare that a snapshot-value can be passed as function argument. <code>Snapshot[T]</code> is a type alias for <code>T</code>, which allows you to pass <code>int</code> values instead of <code>int</code> snapshots.</p> <p>Example:</p> <pre><code>from typing import Optional\nfrom inline_snapshot import snapshot, Snapshot\n\n# required snapshots\n\n\ndef check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\n assert lower <= value <= upper\n\n\ndef test_numbers():\n for c in \"hello world\":\n check_in_bounds(ord(c), snapshot(32), snapshot(119))\n\n # use with normal values\n check_in_bounds(5, 0, 10)\n\n\n# optional snapshots\n\n\ndef check_container(\n value,\n *,\n value_repr: Optional[Snapshot[str]] = None,\n length: Optional[Snapshot[int]] = None\n):\n if value_repr is not None:\n assert repr(value) == value_repr\n\n if length is not None:\n assert len(value) == length\n\n\ndef test_container():\n check_container([1, 2], value_repr=snapshot(\"[1, 2]\"), length=snapshot(2))\n\n check_container({1, 1}, length=snapshot(1))\n</code></pre> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_types.py</code> <pre><code>class Snapshot(Generic[T]):\n \"\"\"Can be used to annotate function arguments which accept snapshot\n values.\n\n You can annotate function arguments with `Snapshot[T]` to declare that a snapshot-value can be passed as function argument.\n `Snapshot[T]` is a type alias for `T`, which allows you to pass `int` values instead of `int` snapshots.\n\n\n Example:\n <!-- inline-snapshot: create fix trim first_block outcome-passed=2 -->\n ``` python\n from typing import Optional\n from inline_snapshot import snapshot, Snapshot\n\n # required snapshots\n\n\n def check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\n assert lower <= value <= upper\n\n\n def test_numbers():\n for c in \"hello world\":\n check_in_bounds(ord(c), snapshot(32), snapshot(119))\n\n # use with normal values\n check_in_bounds(5, 0, 10)\n\n\n # optional snapshots\n\n\n def check_container(\n value,\n *,\n value_repr: Optional[Snapshot[str]] = None,\n length: Optional[Snapshot[int]] = None\n ):\n if value_repr is not None:\n assert repr(value) == value_repr\n\n if length is not None:\n assert len(value) == length\n\n\n def test_container():\n check_container([1, 2], value_repr=snapshot(\"[1, 2]\"), length=snapshot(2))\n\n check_container({1, 1}, length=snapshot(1))\n ```\n \"\"\"\n</code></pre>", │ │ │ │ │ "title": "<code>Snapshot</code>" │ │ │ │ │ } │ │ │ │ │ ] │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/python-inline-snapshot-doc/html/types.html │ │ │ │ @@ -1003,15 +1003,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <details class="quote"> │ │ │ │ - <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_types.py</code></summary> │ │ │ │ + <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_types.py</code></summary> │ │ │ │ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-21">21</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-22">22</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-23">23</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-24">24</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-25">25</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-26">26</a></span> │ │ │ │ <span class="normal"><a href="#__codelineno-0-27">27</a></span> │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -78,15 +78,15 @@ │ │ │ │ │ assert len(value) == length │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ def test_container(): │ │ │ │ │ check_container([1, 2], value_repr=snapshot("[1, 2]"), length=snapshot(2)) │ │ │ │ │ │ │ │ │ │ check_container({1, 1}, length=snapshot(1)) │ │ │ │ │ -Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ +Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/ │ │ │ │ │ _types.py │ │ │ │ │ class Snapshot(Generic[T]): │ │ │ │ │ _2_1 """Can be used to annotate function arguments which accept snapshot │ │ │ │ │ _2_2 values. │ │ │ │ │ _2_3 │ │ │ │ │ _2_4 You can annotate function arguments with `Snapshot[T]` to declare that a │ │ │ │ │ _2_5 snapshot-value can be passed as function argument.