Skip to content

Commit 51d3dcf

Browse files
authored
Merge pull request #93 from dhellmann/bootstrap-report-source-of-dep
when bootstrapping, report origin of each requirement
2 parents c51b91f + dd295f4 commit 51d3dcf

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

src/fromager/commands/bootstrap.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
def _get_requirements_from_args(toplevel, requirements_file):
1212
to_build = []
13-
to_build.extend(toplevel)
13+
to_build.extend(('toplevel', t) for t in toplevel)
1414
for filename in requirements_file:
1515
with open(filename, 'r') as f:
1616
for line in f:
@@ -19,7 +19,7 @@ def _get_requirements_from_args(toplevel, requirements_file):
1919
logger.debug('line %r useful %r', line, useful)
2020
if not useful:
2121
continue
22-
to_build.append(useful)
22+
to_build.append((str(filename), useful))
2323
return to_build
2424

2525

@@ -46,8 +46,8 @@ def bootstrap(wkctx, requirements_file, toplevel):
4646

4747
server.start_wheel_server(wkctx)
4848

49-
for toplevel in to_build:
50-
sdist.handle_requirement(wkctx, Requirement(toplevel))
49+
for origin, toplevel in to_build:
50+
sdist.handle_requirement(wkctx, Requirement(toplevel), req_type=origin)
5151

5252
# If we put pre-built wheels in the downloads directory, we should
5353
# remove them so we can treat that directory as a source of wheels

tests/test_bootstrap.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55

66
def test_get_requirements_single_arg():
77
requirements = bootstrap._get_requirements_from_args(['a'], [])
8-
assert ['a'] == requirements
8+
assert [('toplevel', 'a')] == requirements
99

1010

1111
def test_get_requirements_multiple_args():
1212
requirements = bootstrap._get_requirements_from_args(['a', 'b'], [])
13-
assert ['a', 'b'] == requirements
13+
assert [('toplevel', 'a'), ('toplevel', 'b')] == requirements
1414

1515

1616
def test_get_requirements_requirements_file(tmp_path):
1717
requirements_file = tmp_path / 'requirements.txt'
1818
requirements_file.write_text('c\n')
1919
requirements = bootstrap._get_requirements_from_args([], [requirements_file])
20-
assert ['c'] == requirements
20+
assert [(str(requirements_file), 'c')] == requirements
2121

2222

2323
def test_get_requirements_requirements_file_comments(tmp_path):
@@ -31,7 +31,7 @@ def test_get_requirements_requirements_file_comments(tmp_path):
3131
'''),
3232
)
3333
requirements = bootstrap._get_requirements_from_args([], [requirements_file])
34-
assert ['c', 'd'] == requirements
34+
assert [(str(requirements_file), 'c'), (str(requirements_file), 'd')] == requirements
3535

3636

3737
def test_get_requirements_requirements_file_multiple(tmp_path):
@@ -40,18 +40,19 @@ def test_get_requirements_requirements_file_multiple(tmp_path):
4040
requirements2_file = tmp_path / 'requirements2.txt'
4141
requirements2_file.write_text('b\n')
4242
requirements = bootstrap._get_requirements_from_args([], [requirements1_file, requirements2_file])
43-
assert ['a', 'b'] == requirements
43+
assert [(str(requirements1_file), 'a'), (str(requirements2_file), 'b')] == requirements
4444

4545

4646
def test_get_requirements_file_with_comments_and_blanks(tmp_path):
4747
requirements_file = tmp_path / 'requirements.txt'
4848
requirements_file.write_text('a\n\n# ignore\nb\nc\n')
4949
requirements = bootstrap._get_requirements_from_args([], [requirements_file])
50-
assert ['a', 'b', 'c'] == requirements
50+
f = str(requirements_file)
51+
assert [(f, 'a'), (f, 'b'), (f, 'c')] == requirements
5152

5253

5354
def test_get_requirements_args_and_file(tmp_path):
5455
requirements_file = tmp_path / 'requirements.txt'
5556
requirements_file.write_text('c\n')
5657
requirements = bootstrap._get_requirements_from_args(['a', 'b'], [requirements_file])
57-
assert ['a', 'b', 'c'] == requirements
58+
assert [('toplevel', 'a'), ('toplevel', 'b'), (str(requirements_file), 'c')] == requirements

0 commit comments

Comments
 (0)