feat: Make sure that depth can only be either 1 or 0

This commit is contained in:
Cristian 2020-07-07 10:25:02 -05:00
parent 32e790979e
commit a6940092bb
2 changed files with 9 additions and 3 deletions

View file

@ -49,11 +49,11 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
"--depth", "--depth",
action="store", action="store",
default=0, default=0,
choices=[0,1],
type=int, type=int,
help="Recursively archive all linked pages up to this many hops away" help="Recursively archive all linked pages up to this many hops away"
) )
command = parser.parse_args(args or ()) command = parser.parse_args(args or ())
#import_str = accept_stdin(stdin)
add( add(
import_str=command.import_path, import_str=command.import_path,
import_path=None, import_path=None,

View file

@ -5,7 +5,13 @@ from .fixtures import *
def test_depth_flag_is_accepted(process): def test_depth_flag_is_accepted(process):
arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=0"], capture_output=True) arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=0"], capture_output=True)
assert 'unrecognized arguments: --depth' not in arg_process.stderr.decode('utf-8') assert 'unrecognized arguments: --depth' not in arg_process.stderr.decode("utf-8")
def test_depth_flag_fails_if_it_is_not_0_or_1(process):
arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=5"], capture_output=True)
assert 'invalid choice' in arg_process.stderr.decode("utf-8")
arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=-1"], capture_output=True)
assert 'invalid choice' in arg_process.stderr.decode("utf-8")
def test_depth_flag_0_crawls_only_the_arg_page(tmp_path, process): def test_depth_flag_0_crawls_only_the_arg_page(tmp_path, process):
arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=0"], capture_output=True) arg_process = subprocess.run(["archivebox", "add", "https://example.com", "--depth=0"], capture_output=True)
@ -19,4 +25,4 @@ def test_depth_flag_1_crawls_the_page_AND_links(tmp_path, process):
with open(tmp_path / "index.json", "r") as f: with open(tmp_path / "index.json", "r") as f:
archive_file = f.read() archive_file = f.read()
assert "https://example.com" in archive_file assert "https://example.com" in archive_file
assert "https://www.iana.org/domains/example" in archive_file assert "https://www.iana.org/domains/example" in archive_file