defl/tests.old/test_overrider.py
2025-04-28 14:44:03 -04:00

61 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python
import defl
import json
from defl import log, cl
from defl.testing_ import Tester
from defl import DotDict
from dataclasses import dataclass, field, KW_ONLY
import sys
import re
import os
import enum
import itertools
from functools import partial, partialmethod
from time import sleep
from operator import itemgetter
from defl import log, cl, Path, Undefined, Null
from defl import CLIError
from defl._typing_ import *
import defl
tester = Tester(name=__file__)
@dataclass(slots=True, kw_only=False, frozen=False)
class OverrideMe:
ClassLevel: ClassVar = 1
@tester.add()
def override():
om = defl.Overrider('level1', 'level2', default=0)
assert om.result == 0
om.level2 = 2
assert om.result == 2
om.level1 = 1
assert om.result == 2
om = defl.Overrider('level1', 'level2', default=0)
assert om.r == 0
om.level1 = 1
assert om.r == 1
om.level2 = 2
assert om.r == 2
def classResolve(): return OverrideMe.ClassLevel
classResolve.overrideResolve = True
om = defl.Overrider('level1', 'level2', default=classResolve)
assert om.r == 1
OverrideMe.ClassLevel = 2
assert om.r == 2
log.info(tester.run())
tester.exitWithStatus()
# for i in ch:
# print(defl.printTable([[y for y in x] for x in ch], squareFill=True))