Skip to content

Commit

Permalink
feat: poetry v2 tests
Browse files Browse the repository at this point in the history
  • Loading branch information
DOlufemi committed Feb 24, 2025
1 parent 83dcfa0 commit dc6ee03
Show file tree
Hide file tree
Showing 3 changed files with 198 additions and 0 deletions.
95 changes: 95 additions & 0 deletions test/acceptance/workspaces/poetry-v2-app/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions test/acceptance/workspaces/poetry-v2-app/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[project]
name = "dep-with-optional-dependency"
version = "0.1.0"
description = ""
authors = [
{name = "Your Name",email = "you@example.com"}
]
readme = "README.md"
requires-python = ">=3.9"
dependencies = [
"jinja2 (>=2.11)",
]

[build-system]
requires = ["poetry-core>=3.6"]
build-backend = "poetry.core.masonry.api"
87 changes: 87 additions & 0 deletions test/jest/unit/python/snyk-test-pyproject.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,93 @@ describe('snyk test for python project', () => {
}),
);

const expectedResultObject = {
vulnerabilities: [],
ok: true,
dependencyCount: 0,
org: 'test-org',
policy: undefined,
isPrivate: true,
licensesPolicy: null,
packageManager: 'poetry',
projectId: undefined,
ignoreSettings: null,
docker: undefined,
summary: 'No known vulnerabilities',
severityThreshold: undefined,
remediation: undefined,
filesystemPolicy: false,
uniqueCount: 0,
targetFile: 'pyproject.toml',
projectName: undefined,
foundProjectCount: undefined,
displayTargetFile: 'pyproject.toml',
platform: undefined,
hasUnknownVersions: false,
path: fixturePath,
};
expect(result).toMatchObject({
result: JSON.stringify(expectedResultObject, null, 2),
});
});
it('should scan poetry v2 vulnerabilities', async () => {
const fixturePath = getWorkspacePath('poetry-v2-app');

const plugin = {
async inspect() {
return {
plugin: {
targetFile: 'pyproject.toml',
name: 'snyk-python-plugin',
runtime: 'Python',
},
package: {},
};
},
};

// this is for 'enablePnpmCli' feature flag
mockedMakeRequest.mockImplementationOnce(() => {
return Promise.resolve({
res: { statusCode: 200 } as NeedleResponse,
body: {
code: 200,
ok: false,
},
});
});
mockedLoadPlugin.mockImplementationOnce(() => {
return plugin;
});
mockedMakeRequest.mockImplementationOnce(() => {
return Promise.resolve({
res: { statusCode: 200 } as NeedleResponse,
body: {
result: { issuesData: {}, affectedPkgs: {} },
meta: { org: 'test-org', isPublic: false },
filesystemPolicy: false,
},
});
});

const result: CommandResult = await test(fixturePath, {
json: true,
_: [],
_doubleDashArgs: [],
});

expect(mockedLoadPlugin).toHaveBeenCalledTimes(1);
expect(mockedLoadPlugin).toHaveBeenCalledWith('poetry');

expect(mockedMakeRequest).toHaveBeenCalledTimes(2);
expect(mockedMakeRequest).toHaveBeenCalledWith(
expect.objectContaining({
body: expect.objectContaining({
displayTargetFile: 'pyproject.toml',
}),
}),
);

const expectedResultObject = {
vulnerabilities: [],
ok: true,
Expand Down

0 comments on commit dc6ee03

Please sign in to comment.