mutmut 3.2.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,34 @@
1
+ Screen {
2
+ layout: vertical;
3
+ }
4
+ .container {
5
+ layout: horizontal;
6
+ height: 50%;
7
+ }
8
+
9
+
10
+ DataTable {
11
+ color: #c0c0c0;
12
+ }
13
+
14
+ DataTable:focus {
15
+ color: white;
16
+ }
17
+
18
+ .datatable--cursor {
19
+ color: black;
20
+ background: white;
21
+ }
22
+
23
+ DataTable:focus .datatable--cursor {
24
+ color: black;
25
+ background: orange;
26
+ }
27
+
28
+ #diff_view_widget {
29
+ height: 50%;
30
+ overflow-y: scroll;
31
+ }
32
+
33
+ #diff_view {
34
+ }
@@ -0,0 +1,23 @@
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ * Anders Hovmöller <boxed@killingar.net>
6
+ * Felipe Pontes <felipemfpontes@gmail.com>
7
+ * William Orr <will@worrbase.com>
8
+ * Trevin Gandhi <trevin.gandhi@petuum.com>
9
+ * Daniel Hahler <git@thequod.de>
10
+ * Marcelo Da Cruz Pinto
11
+ * Jakub Stolarski
12
+ * Hristo Georgiev
13
+ * Savo Kovačević <savo.s.kovacevic@gmail.com>
14
+ * Nathan Klapstein <nklapste@ualberta.ca>
15
+ * Brian Skinn <brian.skinn@gmail.com>
16
+ * Jim Jazwiecki <jim.jazwiecki@gmail.com>
17
+ * neroks <gneroks@gmail.com>
18
+ * John Vandenberg <jayvdb@gmail.com>
19
+ * Luca Simonetto <luca.simonetto.94@gmail.com>
20
+ * Emil Stenström <emil@emilstenstrom.se>
21
+ * Roxane Bellott <roxane.bellot@gmail.com>
22
+ * Tomáš Chvátal <tchvatal@suse.com>
23
+ * Frank Hoffmann <15r10nk-git@polarbit.de>
@@ -0,0 +1,12 @@
1
+ Copyright (c) 2016, Anders Hovmöller
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
+
6
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7
+
8
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9
+
10
+ * Neither the name of mutmut nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,215 @@
1
+ Metadata-Version: 2.1
2
+ Name: mutmut
3
+ Version: 3.2.3
4
+ Summary: mutation testing for Python 3
5
+ Home-page: https://github.com/boxed/mutmut
6
+ Author: Anders Hovmöller
7
+ Author-email: boxed@killingar.net
8
+ License: BSD
9
+ Keywords: mutmut mutant mutation test testing
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: BSD License
13
+ Classifier: Natural Language :: English
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.7
16
+ License-File: LICENSE
17
+ License-File: AUTHORS.rst
18
+ Requires-Dist: parso
19
+ Requires-Dist: click
20
+ Requires-Dist: junit-xml==1.8
21
+ Requires-Dist: setproctitle
22
+ Requires-Dist: textual
23
+ Requires-Dist: toml>=0.10.2; python_version < "3.11"
24
+
25
+ mutmut - python mutation tester
26
+ ===============================
27
+
28
+ .. image:: https://github.com/boxed/mutmut/actions/workflows/tests.yml/badge.svg
29
+ :target: https://github.com/boxed/mutmut/actions/workflows/tests.yml
30
+
31
+ .. image:: https://readthedocs.org/projects/mutmut/badge/?version=latest
32
+ :target: https://mutmut.readthedocs.io/en/latest/?badge=latest
33
+ :alt: Documentation Status
34
+
35
+
36
+ Mutmut is a mutation testing system for Python, with a strong focus on ease
37
+ of use. If you don't know what mutation testing is try starting with
38
+ `this article <https://kodare.net/2016/12/01/mutmut-a-python-mutation-testing-system.html>`_.
39
+
40
+ Some highlight features:
41
+
42
+ - Found mutants can be applied on disk with a simple command making it very
43
+ easy to work with the results
44
+ - Remembers work that has been done, so you can work incrementally
45
+ - Knows which tests to execute, speeding up mutation testing
46
+ - Interactive terminal based UI
47
+ - Parallel and fast execution
48
+
49
+ .. image:: browse_screenshot.png
50
+
51
+
52
+ If you want to mutate code outside of functions, you can try using mutmut 2,
53
+ which has a different execution model than mutmut 3+.
54
+
55
+
56
+ Requirements
57
+ ------------
58
+
59
+ Mutmut must be run on a system with `fork` support. This means that if you want
60
+ to run on windows, you must run inside WSL.
61
+
62
+
63
+
64
+ Install and run
65
+ ---------------
66
+
67
+ You can get started with a simple:
68
+
69
+ .. code-block:: console
70
+
71
+ pip install mutmut
72
+ mutmut run
73
+
74
+ This will by run pytest on tests in the "tests" or "test" folder and
75
+ it will try to figure out where the code to mutate is.
76
+
77
+
78
+
79
+ You can stop the mutation run at any time and mutmut will restart where you
80
+ left off. It will continue where it left off, and re-test functions that were
81
+ modified since last run.
82
+
83
+ To work with the results, use `mutmut browse` where you can see the mutants,
84
+ retest them when you've updated your tests.
85
+
86
+ You can also write a mutant to disk from the `browse` interface, or via
87
+ `mutmut apply <mutant>`. You should **REALLY** have the file you mutate under
88
+ source code control and committed before you apply a mutant!
89
+
90
+
91
+ Configuration
92
+ -------------
93
+
94
+ In `setup.cfg` in the root of your project you can configure mutmut if you need to:
95
+
96
+ .. code-block:: ini
97
+
98
+ [mutmut]
99
+ paths_to_mutate=src/
100
+ tests_dir=tests/
101
+
102
+ See below for more options for configuring mutmut.
103
+
104
+
105
+ Wildcards for testing mutants
106
+ -----------------------------
107
+
108
+ Unix filename pattern matching style on mutants is supported. Example:
109
+
110
+ .. code-block:: console
111
+
112
+ mutmut run "my_module*"
113
+ mutmut run "my_module.my_function*"
114
+
115
+ In the `browse` TUI you can press `f` to retest a function, and `m` to retest
116
+ an entire module.
117
+
118
+
119
+ "also copy" files
120
+ -----------------
121
+
122
+ To run the full test suite some files are often needed above the tests and the
123
+ source. You can configure to copy extra files that you need by adding
124
+ directories and files to `also_copy` in your `setup.cfg`:
125
+
126
+ .. code-block:: ini
127
+
128
+ also_copy=
129
+ iommi/snapshots/
130
+ conftest.py
131
+
132
+
133
+ Limit stack depth
134
+ -----------------
135
+
136
+ In big code bases some functions are called incidentally by huge swaths of the
137
+ codebase, but you really don't want tests that hit those executions to count
138
+ for mutation testing purposes. Incidentally tested functions lead to slow
139
+ mutation testing as hundreds of tests can be checked for things that should
140
+ have clean and fast unit tests, and it leads to bad test suites as any
141
+ introduced bug in those base functions will lead to many tests that fail which
142
+ are hard to understand how they relate to the function with the change.
143
+
144
+ You can configure mutmut to only count a test as being relevant for a function
145
+ if the stack depth from the test to the function is below some limit. In your
146
+ `setup.cfg` add:
147
+
148
+ .. code-block:: ini
149
+
150
+ max_stack_depth=8
151
+
152
+ A lower value will increase mutation speed and lead to more localized tests,
153
+ but will also lead to more surviving mutants that would otherwise have been
154
+ caught.
155
+
156
+
157
+ Exclude files from mutation
158
+ ---------------------------
159
+
160
+ You can exclude files from mutation in `setup.cfg`:
161
+
162
+ .. code-block::
163
+
164
+ do_not_mutate=
165
+ *__tests.py
166
+
167
+
168
+ Whitelisting
169
+ ------------
170
+
171
+ You can mark lines like this:
172
+
173
+ .. code-block:: python
174
+
175
+ some_code_here() # pragma: no mutate
176
+
177
+ to stop mutation on those lines. Some cases we've found where you need to
178
+ whitelist lines are:
179
+
180
+ - The version string on your library. You really shouldn't have a test for this :P
181
+ - Optimizing break instead of continue. The code runs fine when mutating break
182
+ to continue, but it's slower.
183
+
184
+
185
+ Example mutations
186
+ -----------------
187
+
188
+ - Integer literals are changed by adding 1. So 0 becomes 1, 5 becomes 6, etc.
189
+ - `<` is changed to `<=`
190
+ - break is changed to continue and vice versa
191
+
192
+ In general the idea is that the mutations should be as subtle as possible.
193
+ See `__init__.py` for the full list.
194
+
195
+
196
+ Workflow
197
+ --------
198
+
199
+ This section describes how to work with mutmut to enhance your test suite.
200
+
201
+ 1. Run mutmut with `mutmut run`. A full run is preferred but if you're just
202
+ getting started you can exit in the middle and start working with what you
203
+ have found so far.
204
+ 2. Show the mutants with `mutmut browse`
205
+ 3. Find a mutant you want to work on and write a test to try to kill it.
206
+ 4. Press `r` to rerun the mutant and see if you successfully managed to kill it.
207
+
208
+ Mutmut keeps the data of what it has done and the mutants in the `mutants/`
209
+ directory.If you want to make sure you run a full mutmut run you can delete
210
+ this directory to start from scratch.
211
+
212
+ Contributing to Mutmut
213
+ ----------------------
214
+
215
+ If you wish to contribute to Mutmut, please see our `contributing guide <CONTRIBUTING.rst>`_.
@@ -0,0 +1,13 @@
1
+ mutmut/__init__.py,sha256=B-Yha74LfoPfhKfXt0fTHCxRoW1Y718RpcK3XVPPEM4,9057
2
+ mutmut/__main__.py,sha256=3_j2F_l7ny0-B1thqd9nKunbt12x0WM5VJshpfOcn5Q,54910
3
+ mutmut/result_browser_layout.tcss,sha256=CSX7Qh9SoIsV5u9qZF3ZLiiW_FH0fwTWW33QUtbwq-M,391
4
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ tests/test_mutation.py,sha256=Bby-xZzpYd_3OxpP3k9zd5bGT3nmbOZiiDIPzyOvqBI,12415
6
+ tests/test_mutmut3.py,sha256=zlRMxN8s50cx9SZGUi6RXukHY5ySKHPOlKUyJtq7ZZQ,1700
7
+ mutmut-3.2.3.dist-info/AUTHORS.rst,sha256=9HBFSuT63hPNUMkqsu--psJQQRjER3gCYbikrWzD8Uc,730
8
+ mutmut-3.2.3.dist-info/LICENSE,sha256=uy76yP7fDHTtI37Via4XLfFIkEpXgafsmZkJLcr29Dk,1471
9
+ mutmut-3.2.3.dist-info/METADATA,sha256=BTujoowAHFwzxU6TSEPhUgs2q5e6wGCWxO15qAkyIB4,6342
10
+ mutmut-3.2.3.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
11
+ mutmut-3.2.3.dist-info/entry_points.txt,sha256=qjOZfcGw95gooit1WRIYz-DB9IQ1atqRSTaHTI5CoTs,47
12
+ mutmut-3.2.3.dist-info/top_level.txt,sha256=64cgMnNKUMmb41dPCQN57HfdN0XEO3sJjuCkZ_dwyT8,13
13
+ mutmut-3.2.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.44.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mutmut = mutmut.__main__:cli
@@ -0,0 +1,2 @@
1
+ mutmut
2
+ tests
tests/__init__.py ADDED
File without changes