mirror of
https://github.com/pirate/ArchiveBox.git
synced 2025-08-11 00:54:45 +02:00
feat: Make sure that depth can only be either 1 or 0
This commit is contained in:
@@ -49,11 +49,11 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
|
||||
"--depth",
|
||||
action="store",
|
||||
default=0,
|
||||
choices=[0,1],
|
||||
type=int,
|
||||
help="Recursively archive all linked pages up to this many hops away"
|
||||
)
|
||||
command = parser.parse_args(args or ())
|
||||
#import_str = accept_stdin(stdin)
|
||||
add(
|
||||
import_str=command.import_path,
|
||||
import_path=None,
|
||||
|
@@ -5,7 +5,13 @@ from .fixtures import *
|
||||
|
||||
def test_depth_flag_is_accepted(process):
|
||||
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):
|
||||
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:
|
||||
archive_file = f.read()
|
||||
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
|
||||
|
Reference in New Issue
Block a user