|
- from dds_ci.dds import DDSWrapper
- from dds_ci.testing import Project, RepoServer, PackageJSON
- from dds_ci.testing.error import expect_error_marker
- from dds_ci.testing.http import HTTPRepoServerFactory, RepoServer
-
- import pytest
-
- NEO_SQLITE_PKG_JSON = {
- 'packages': {
- 'neo-sqlite3': {
- '0.3.0': {
- 'remote': {
- 'git': {
- 'url': 'https://github.com/vector-of-bool/neo-sqlite3.git',
- 'ref': '0.3.0',
- }
- }
- }
- }
- }
- }
-
-
- @pytest.fixture(scope='session')
- def _test_repo(http_repo_factory: HTTPRepoServerFactory) -> RepoServer:
- srv = http_repo_factory('test-pkg-db-repo')
- srv.import_json_data(NEO_SQLITE_PKG_JSON)
- return srv
-
-
- def test_pkg_get(_test_repo: RepoServer, tmp_project: Project) -> None:
- _test_repo.import_json_data(NEO_SQLITE_PKG_JSON)
- tmp_project.dds.repo_add(_test_repo.url)
- tmp_project.dds.pkg_get('neo-sqlite3@0.3.0')
- assert tmp_project.root.joinpath('neo-sqlite3@0.3.0').is_dir()
- assert tmp_project.root.joinpath('neo-sqlite3@0.3.0/package.jsonc').is_file()
-
-
- def test_pkg_repo(_test_repo: RepoServer, tmp_project: Project) -> None:
- dds = tmp_project.dds
- dds.repo_add(_test_repo.url)
- dds.run(['pkg', 'repo', dds.catalog_path_arg, 'ls'])
-
-
- def test_pkg_repo_rm(_test_repo: RepoServer, tmp_project: Project) -> None:
- _test_repo.import_json_data(NEO_SQLITE_PKG_JSON)
- dds = tmp_project.dds
- dds.repo_add(_test_repo.url)
- # Okay:
- tmp_project.dds.pkg_get('neo-sqlite3@0.3.0')
- # Remove the repo:
- dds.run(['pkg', dds.catalog_path_arg, 'repo', 'ls'])
- dds.repo_remove(_test_repo.repo_name)
- # Cannot double-remove a repo:
- with expect_error_marker('repo-rm-no-such-repo'):
- dds.repo_remove(_test_repo.repo_name)
- # Now, fails:
- with expect_error_marker('pkg-get-no-pkg-id-listing'):
- tmp_project.dds.pkg_get('neo-sqlite3@0.3.0')
-
-
- def test_pkg_search(_test_repo: RepoServer, tmp_project: Project) -> None:
- _test_repo.import_json_data(NEO_SQLITE_PKG_JSON)
- dds = tmp_project.dds
- with expect_error_marker('pkg-search-no-result'):
- dds.run(['pkg', dds.catalog_path_arg, 'search'])
- dds.repo_add(_test_repo.url)
- dds.run(['pkg', dds.catalog_path_arg, 'search'])
- dds.run(['pkg', dds.catalog_path_arg, 'search', 'neo-sqlite3'])
- dds.run(['pkg', dds.catalog_path_arg, 'search', 'neo-*'])
- with expect_error_marker('pkg-search-no-result'):
- dds.run(['pkg', dds.catalog_path_arg, 'search', 'nonexistent'])
|