Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
juga
sbws
Commits
4fdbdfea
Commit
4fdbdfea
authored
Jan 25, 2022
by
Paul Walker
Browse files
Remove userquery code
parent
09d7ca7e
Changes
4
Hide whitespace changes
Inline
Side-by-side
docs/source/images/packages_sbws.svg
View file @
4fdbdfea
...
...
@@ -119,10 +119,5 @@
<polygon
fill=
"none"
stroke=
"black"
points=
"8396.5,-36 8014.5,-36 8014.5,-0 8396.5,-0 8396.5,-36"
/>
<text
text-anchor=
"middle"
x=
"8205.5"
y=
"-14.3"
font-family=
"Times,serif"
font-size=
"14.00"
>
/home/user/_my/code/bwauth
-
related/sbws/sbws/util/timestamp.py
</text>
</g>
<!-- 22 -->
<g
id=
"node23"
class=
"node"
><title>
22
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"8792,-36 8415,-36 8415,-0 8792,-0 8792,-36"
/>
<text
text-anchor=
"middle"
x=
"8603.5"
y=
"-14.3"
font-family=
"Times,serif"
font-size=
"14.00"
>
/home/user/_my/code/bwauth
-
related/sbws/sbws/util/userquery.py
</text>
</g>
</g>
</svg>
docs/source/sbws.util.rst
View file @
4fdbdfea
...
...
@@ -44,15 +44,6 @@ sbws.util.stem module
:undoc-members:
:show-inheritance:
sbws.util.userquery module
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. automodule:: sbws.util.userquery
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
...
...
sbws/util/userquery.py
deleted
100644 → 0
View file @
09d7ca7e
# Based on https://stackoverflow.com/a/3041990
def
query_yes_no
(
question
,
default
=
"yes"
):
"""
Ask a yes/no question via input() and return the user's answer.
:param str question: Prompt given to the user.
:param str default: The assumed answer if th user just hits **Enter**. It
must be ``'yes'`` (the default if no default is given), ``'no'``, or
``None`` (meaning an answer is required from the user).
:returns: ``True`` if we ended up with a 'yes' answer, otherwise
``False``.
"""
valid
=
{
"yes"
:
True
,
"y"
:
True
,
"ye"
:
True
,
"no"
:
False
,
"n"
:
False
}
if
default
is
None
:
prompt
=
" [y/n] "
elif
default
==
"yes"
:
prompt
=
" [Y/n] "
elif
default
==
"no"
:
prompt
=
" [y/N] "
else
:
raise
ValueError
(
'invalid default answer: "%s"'
%
default
)
prompt
=
question
+
prompt
first_loop
=
True
while
True
:
choice
=
input
(
prompt
).
lower
()
if
default
is
not
None
and
choice
==
""
:
return
valid
[
default
]
elif
choice
in
valid
:
return
valid
[
choice
]
elif
first_loop
:
prompt
=
(
'Please respond with "yes" or "no" (or y or n).
\n
'
+
prompt
)
first_loop
=
False
tests/unit/util/test_userquery.py
deleted
100644 → 0
View file @
09d7ca7e
from
unittest.mock
import
patch
from
sbws.util.userquery
import
query_yes_no
@
patch
(
"builtins.input"
)
def
test_userquery_missing_default_invalid_response
(
input_mock
):
input_mock
.
side_effect
=
(
[
""
]
*
100
+
[
"k"
]
*
100
+
[
"yess"
]
*
100
+
[
"no o"
]
*
100
)
try
:
query_yes_no
(
"a?"
,
default
=
None
)
except
StopIteration
:
pass
else
:
assert
None
,
(
"Should have looped forever (and StopItration been "
"thrown when we stopped feeding it empty responses)"
)
assert
input_mock
.
call_count
==
401
@
patch
(
"builtins.input"
)
def
test_userquery_missing_default_yes_response
(
input_mock
):
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"y"
]
assert
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"Y"
]
assert
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"Yes"
]
assert
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
"k"
]
*
100
+
[
"Yes"
]
assert
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
"k"
]
*
100
+
[
"Yes"
,
"No"
]
assert
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
@
patch
(
"builtins.input"
)
def
test_userquery_missing_default_no_response
(
input_mock
):
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"n"
]
assert
not
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"N"
]
assert
not
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
""
]
*
100
+
[
"No"
]
assert
not
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
"k"
]
*
100
+
[
"No"
]
assert
not
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
input_mock
.
side_effect
=
[
"k"
]
*
100
+
[
"No"
,
"Yes"
]
assert
not
query_yes_no
(
"a?"
,
default
=
None
)
assert
input_mock
.
call_count
==
101
input_mock
.
reset_mock
()
@
patch
(
"builtins.input"
)
def
test_userquery_yes_default_invalid_response
(
input_mock
):
input_mock
.
side_effect
=
[
""
]
*
100
assert
query_yes_no
(
"a?"
,
default
=
"yes"
)
assert
input_mock
.
call_count
==
1
@
patch
(
"builtins.input"
)
def
test_userquery_no_default_invalid_response
(
input_mock
):
input_mock
.
side_effect
=
[
""
]
*
100
assert
not
query_yes_no
(
"a?"
,
default
=
"no"
)
assert
input_mock
.
call_count
==
1
@
patch
(
"builtins.input"
)
def
test_userquery_bad_default_invalid_response
(
input_mock
):
input_mock
.
side_effect
=
[
""
]
*
100
try
:
query_yes_no
(
"a?"
,
default
=
"nooo"
)
except
ValueError
:
pass
else
:
assert
None
,
(
"Should not have allowed us to specify a bad default "
"value"
)
assert
input_mock
.
call_count
==
0
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment