dream2nix/tests/unit/test_dream_lock.py

57 lines
1.1 KiB
Python
Raw Normal View History

2022-03-10 13:05:34 +03:00
import pytest
import nix_ffi
exampleDreamLock = dict(
_generic = dict(
defaultPackage="example",
packages=dict(
example="1.2.3",
),
subsystem = "nodejs",
_subsystemAttrs = {},
),
dependencies = {},
cyclicDependencies = {},
feat: indexers (#184) * feat: add translate and shell commands * feat: add indexer modules * feat(nodejs): add a basic npm indexer * feat: add an index app for indexing using an indexer * feat(rust): add crates-io indexer * refactor: use configFile in more places * feat: implement translate-index app * refactor: move indexers out of subsystems since they aren't subsystem specific * fix: discard string context for config text * docs: add a preliminary document for indexers * docs: add examples for crates-io and npm indexer inputs * feat: add support for setting sourceRoot in dream-lock, fix translate source patching * fix: don't discard context from config passed as text * fix: remove duplicate resolves * fix: shell command * refactor: remove useless nix calls, improve the apps * feat: improve cli apps UX, implement runNixCmdInSrc, remove shell * docs: more comments * feat: add generatePackagesFromLocksTree util * fix: pass args to generatePackagesFromDreamLocks correctly * Update indexers.md * chore: remove license from crates-io indexer * fix: pass config loaded from env vars to loadConfig * refactor: don't expose dream2nix internally * feat: add makeOutputsForIndexes utility * refactor: make make(Flake)OutputsForIndexes interface consistent with make(Flake)Outputs * fix: allow passing pkgs to makeFlakeOutputsForIndexes * fix: remove unused code * fix: rename var to expected name * refactor(utils/index): improve and fix overrideOutputs arg * fix(utils/index): actually pass prev outputs to overrideOutputs * refactor: patch all sources instead of using a seperate field in dream lock * fix(utils/index): use .program to access the program * fix: correct jq command in translate app * refactor: improve translate app performance * feat: add crates-io-simple indexer * fix(apps/translate): only set dir if relPath is set * fix(apps/callNixWithD2N): pin nixpkgs * fix: unloaded config passed to dlib * refactor: rewrite root source patching in nix * tests: add a unit test for replace root sources Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
2022-07-12 13:33:04 +03:00
sources = dict(
example = {
"1.2.3": dict(
type = "path",
rootName = None,
rootVersion = None,
relPath = "a/b/c",
),
},
),
2022-03-10 13:05:34 +03:00
)
def test_dream_lock_inject():
result = nix_ffi.callNixFunction(
'utils.dreamLock.injectDependencies',
dreamLock=exampleDreamLock,
inject=dict(
example={
"1.2.3": [
[ "injected-package", "1.0.0" ]
]
}
),
)
assert result['dependencies']['example']['1.2.3'] == [dict(
name="injected-package",
version="1.0.0",
)]
feat: indexers (#184) * feat: add translate and shell commands * feat: add indexer modules * feat(nodejs): add a basic npm indexer * feat: add an index app for indexing using an indexer * feat(rust): add crates-io indexer * refactor: use configFile in more places * feat: implement translate-index app * refactor: move indexers out of subsystems since they aren't subsystem specific * fix: discard string context for config text * docs: add a preliminary document for indexers * docs: add examples for crates-io and npm indexer inputs * feat: add support for setting sourceRoot in dream-lock, fix translate source patching * fix: don't discard context from config passed as text * fix: remove duplicate resolves * fix: shell command * refactor: remove useless nix calls, improve the apps * feat: improve cli apps UX, implement runNixCmdInSrc, remove shell * docs: more comments * feat: add generatePackagesFromLocksTree util * fix: pass args to generatePackagesFromDreamLocks correctly * Update indexers.md * chore: remove license from crates-io indexer * fix: pass config loaded from env vars to loadConfig * refactor: don't expose dream2nix internally * feat: add makeOutputsForIndexes utility * refactor: make make(Flake)OutputsForIndexes interface consistent with make(Flake)Outputs * fix: allow passing pkgs to makeFlakeOutputsForIndexes * fix: remove unused code * fix: rename var to expected name * refactor(utils/index): improve and fix overrideOutputs arg * fix(utils/index): actually pass prev outputs to overrideOutputs * refactor: patch all sources instead of using a seperate field in dream lock * fix(utils/index): use .program to access the program * fix: correct jq command in translate app * refactor: improve translate app performance * feat: add crates-io-simple indexer * fix(apps/translate): only set dir if relPath is set * fix(apps/callNixWithD2N): pin nixpkgs * fix: unloaded config passed to dlib * refactor: rewrite root source patching in nix * tests: add a unit test for replace root sources Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
2022-07-12 13:33:04 +03:00
def test_dream_lock_replace_root_sources():
result = nix_ffi.callNixFunction(
'utils.dreamLock.replaceRootSources',
dreamLock=exampleDreamLock,
newSourceRoot=dict(
type = "http",
url = "something",
),
)
assert result['sources']['example']['1.2.3'] == dict(
type = "http",
url = "something",
dir = "a/b/c",
)