Skip to content

Commit

Permalink
fix/change: migrate test cases for dicts from unittest to pytest
Browse files Browse the repository at this point in the history
  • Loading branch information
ssato committed Apr 27, 2024
1 parent 4bbfc54 commit c1f907e
Show file tree
Hide file tree
Showing 95 changed files with 76 additions and 149 deletions.
31 changes: 19 additions & 12 deletions tests/dicts/test_get.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,30 @@
# pylint: disable=missing-docstring,invalid-name
from __future__ import annotations

import typing

import pytest

import anyconfig.dicts as TT

from .. import base
from . import common

if typing.TYPE_CHECKING:
import pathlib


DATASETS: list[tuple[typing.Any, dict[str, typing.Any]]] = [
(obj, data) for _, obj, data in common.collect_data("get")
]

class TestCase(common.TestCase):
kind = 'get'

def test_get(self):
for data in self.each_data():
emsg = base.load_data(data.scm) # diversion.
(res, err) = TT.get(data.inp, data.query)
@pytest.mark.parametrize(("obj", "data"), DATASETS)
def test_get(obj, data):
query = data.get("q")
exp = data.get("e")
emsg = data.get("s")

if emsg:
self.assertTrue(bool(err), data)
else: # emsg = ''
self.assertEqual(err, '', data)
(res, err) = TT.get(obj, query)

self.assertEqual(res, data.exp, data)
assert bool(err) if emsg else err == ""
assert res == exp
63 changes: 42 additions & 21 deletions tests/dicts/test_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,54 @@
# pylint: disable=missing-docstring
from __future__ import annotations

import typing

import pytest

import anyconfig.dicts as TT

from .. import base
from . import common


class TestCase(common.TestCase):
kind = 'merge'
if typing.TYPE_CHECKING:
import pathlib


DATASETS: list[tuple[typing.Any, dict[str, typing.Any]]] = [
(obj, data) for _, obj, data in common.collect_data("merge")
]


@pytest.mark.parametrize(("obj", "data"), DATASETS)
def test_merge(obj, data):
exp = data.get("e")
upd = data.get("s")
opts = data.get("o")

TT.merge(obj, upd, **opts)
assert obj == exp


@pytest.mark.parametrize(("obj", "data"), DATASETS)
def test_merge_with_a_dict(obj, data):
exp = data.get("e")
upd = data.get("s")
opts = data.get("o")

TT.merge(obj, upd, **opts)
assert obj == exp


def test_merge(self):
for data in self.each_data():
upd = base.load_data(data.scm, ordered=True) # diversion.
TT.merge(data.inp, upd, **data.opts)
self.assertEqual(data.inp, data.exp, data)
@pytest.mark.parametrize(("obj", "data"), DATASETS)
def test_merge_with_an_iterable(obj, data):
exp = data.get("e")
upd = data.get("s").items()
opts = data.get("o")

def test_merge_with_a_dict(self):
for data in self.each_data():
upd = base.load_data(data.scm)
TT.merge(data.inp, upd, **data.opts)
self.assertEqual(data.inp, data.exp, data)
TT.merge(obj, upd, **opts)
assert obj == exp

def test_merge_with_an_iterable(self):
for data in self.each_data():
upd = base.load_data(data.scm).items()
TT.merge(data.inp, upd, **data.opts)
self.assertEqual(data.inp, data.exp, data)

def test_merge_with_invalid_data(self):
with self.assertRaises((ValueError, TypeError)):
TT.merge(dict(a=1), 1)
def test_merge_with_invalid_data():
with pytest.raises((ValueError, TypeError)):
TT.merge({"a": 1}, 1)
26 changes: 15 additions & 11 deletions tests/dicts/test_mk_nested_dic.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,24 @@
# pylint: disable=missing-docstring
from __future__ import annotations

import typing

import pytest

import anyconfig.dicts as TT

from . import common


class TestCase(common.TestCase):
kind = 'mk_nested_dic'
pattern = '*.*'
ordered = False
DATASETS: list[tuple[typing.Any, dict[str, typing.Any]]] = [
(obj, data) for _, obj, data in common.collect_data("mk_nested_dic")
]


@pytest.mark.parametrize(("obj", "data"), DATASETS)
def test_mk_nested_dic(obj, data):
val = data.get("q")
exp = data.get("e")
opts = data.get("o")

def test_mk_nested_dic(self):
for data in self.each_data():
val = data.query # diversion.
self.assertEqual(
TT.mk_nested_dic(data.inp, val, **data.opts),
data.exp
)
assert TT.mk_nested_dic(obj, val, **opts) == exp
1 change: 0 additions & 1 deletion tests/res/dicts/get/10/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/e/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/q/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/q/20.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/s/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/10/s/20.py

This file was deleted.

13 changes: 0 additions & 13 deletions tests/res/dicts/get/20/00.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/100.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/110.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/30.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/40.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/50.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/60.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/70.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/80.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/90.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/00.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/100.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/110.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/20.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/30.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/40.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/50.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/60.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/70.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/80.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/e/90.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/00.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/100.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/110.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/20.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/30.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/40.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/50.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/60.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/70.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/80.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/q/90.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/00.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/100.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/110.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/20.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/30.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/40.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/50.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/60.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/70.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/80.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/20/s/90.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/30.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/e/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/e/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/e/30.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/q/10.txt

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/q/20.txt

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/get/30/q/30.txt

This file was deleted.

Empty file removed tests/res/dicts/get/30/s/10.txt
Empty file.
2 changes: 0 additions & 2 deletions tests/res/dicts/get/30/s/20.txt

This file was deleted.

2 changes: 0 additions & 2 deletions tests/res/dicts/get/30/s/30.txt

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/10/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/10/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/10/o/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/10/s/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/20/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/20/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/20/o/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/20/s/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/30/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/30/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/30/o/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/30/s/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/40/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/40/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/40/o/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/merge/40/s/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/20.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/e/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/e/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/o/10.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/o/20.json

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/q/10.py

This file was deleted.

1 change: 0 additions & 1 deletion tests/res/dicts/mk_nested_dic/10/q/20.py

This file was deleted.

0 comments on commit c1f907e

Please sign in to comment.