|
1 | 1 | package config
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "path/filepath" |
5 | 4 | "testing"
|
6 | 5 |
|
7 | 6 | "github.com/stretchr/testify/require"
|
8 | 7 | )
|
9 | 8 |
|
10 |
| -func TestGenerateRequirements(t *testing.T) { |
11 |
| - tmpDir := t.TempDir() |
12 |
| - build := Build{ |
13 |
| - PythonPackages: []string{"torch==2.5.1"}, |
| 9 | +func TestSplitPinnedPythonRequirement(t *testing.T) { |
| 10 | + testCases := []struct { |
| 11 | + input string |
| 12 | + expectedName string |
| 13 | + expectedVersion string |
| 14 | + expectedFindLinks []string |
| 15 | + expectedExtraIndexURLs []string |
| 16 | + expectedError bool |
| 17 | + }{ |
| 18 | + {"package1==1.0.0", "package1", "1.0.0", nil, nil, false}, |
| 19 | + {"package1==1.0.0+alpha", "package1", "1.0.0+alpha", nil, nil, false}, |
| 20 | + {"--find-links=link1 --find-links=link2 package3==3.0.0", "package3", "3.0.0", []string{"link1", "link2"}, nil, false}, |
| 21 | + {"package4==4.0.0 --extra-index-url=url1 --extra-index-url=url2", "package4", "4.0.0", nil, []string{"url1", "url2"}, false}, |
| 22 | + {"-f link1 --find-links=link2 package5==5.0.0 --extra-index-url=url1 --extra-index-url=url2", "package5", "5.0.0", []string{"link1", "link2"}, []string{"url1", "url2"}, false}, |
| 23 | + {"package6 --find-links=link1 --find-links=link2 --extra-index-url=url1 --extra-index-url=url2", "", "", nil, nil, true}, |
| 24 | + {"invalid package", "", "", nil, nil, true}, |
| 25 | + {"package8==", "", "", nil, nil, true}, |
| 26 | + {"==8.0.0", "", "", nil, nil, true}, |
14 | 27 | }
|
15 |
| - config := Config{ |
16 |
| - Build: &build, |
| 28 | + |
| 29 | + for _, tc := range testCases { |
| 30 | + name, version, findLinks, extraIndexURLs, err := SplitPinnedPythonRequirement(tc.input) |
| 31 | + |
| 32 | + if tc.expectedError { |
| 33 | + require.Error(t, err) |
| 34 | + } else { |
| 35 | + require.NoError(t, err) |
| 36 | + require.Equal(t, tc.expectedName, name, "input: "+tc.input) |
| 37 | + require.Equal(t, tc.expectedVersion, version, "input: "+tc.input) |
| 38 | + require.Equal(t, tc.expectedFindLinks, findLinks, "input: "+tc.input) |
| 39 | + require.Equal(t, tc.expectedExtraIndexURLs, extraIndexURLs, "input: "+tc.input) |
| 40 | + } |
17 | 41 | }
|
18 |
| - requirementsFile, err := GenerateRequirements(tmpDir, &config) |
19 |
| - require.NoError(t, err) |
20 |
| - require.Equal(t, filepath.Join(tmpDir, "requirements.txt"), requirementsFile) |
21 | 42 | }
|
0 commit comments