• R/O
  • SSH

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

修訂224c887cdfd84a7463870b59dbf58f31a9f3166f (tree)
時間2023-10-04 00:24:58
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

refacored test

Change Summary

差異

diff -r 59fa4cf96410 -r 224c887cdfd8 Makefile
--- a/Makefile Tue Oct 03 16:42:37 2023 +0200
+++ b/Makefile Tue Oct 03 17:24:58 2023 +0200
@@ -20,6 +20,7 @@
2020 rPY_CURRENT = \
2121 pytst/writers/RPy/test_2_ProtocolDataStructures.py \
2222 pytst/writers/RPy/test_99_SieveMoats.py \
23+ pytst/aigr/test_2b_protocol.py \
2324 #
2425 CC2CPy_TODO = \
2526 pytst/writers/RPy/test_999.py \
@@ -37,7 +38,7 @@
3738 diff -w -rs TestDoubles/reference/ TestDoubles/_generated/
3839
3940 clean_generated:
40- rm -f TestDoubles/_generated/*.* TestDoubles/_generated/*/*.*
41+ rm -f TestDoubles/_generated/*.{py,rpy} TestDoubles/_generated/*/*.{py,rpy}
4142
4243 clean_caches:
4344 find . -type d -name __pycache__ -print0 | xargs -0 rm -r
diff -r 59fa4cf96410 -r 224c887cdfd8 TestDoubles/_generated/protocols/_keepThisDir
--- a/TestDoubles/_generated/protocols/_keepThisDir Tue Oct 03 16:42:37 2023 +0200
+++ b/TestDoubles/_generated/protocols/_keepThisDir Tue Oct 03 17:24:58 2023 +0200
@@ -1,1 +1,2 @@
1-This directory is needed to store generated/rendered files (which is an option during testing)
\ No newline at end of file
1+This directory is needed to store generated/rendered files (which is an option during testing)
2+.. note:: a "mirror" of this file is found in :dir:`reference` -- to be able to diff dirs
\ No newline at end of file
diff -r 59fa4cf96410 -r 224c887cdfd8 TestDoubles/reference/protocols/_keepThisDir
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TestDoubles/reference/protocols/_keepThisDir Tue Oct 03 17:24:58 2023 +0200
@@ -0,0 +1,2 @@
1+This directory is needed to store generated/rendered files (which is an option during testing)
2+.. note:: a "mirror" of this file is found in :dir:`reference` -- to be able to diff dirs
\ No newline at end of file
diff -r 59fa4cf96410 -r 224c887cdfd8 pytst/aigr/test_2b_protocol.py
--- a/pytst/aigr/test_2b_protocol.py Tue Oct 03 16:42:37 2023 +0200
+++ b/pytst/aigr/test_2b_protocol.py Tue Oct 03 17:24:58 2023 +0200
@@ -78,3 +78,8 @@
7878 assert (e.typedParameters[1].name, e.typedParameters[1].type) == ('p1', int)
7979 assert (e.typedParameters[2].name, e.typedParameters[2].type) == ('p2', str)
8080 assert (e.typedParameters[3].name, e.typedParameters[3].type) == ('p3', None)
81+
82+
83+@pytest.mark.xfail(reason="Implementation is needed (test & prod)")
84+def test_inherit_base_withParms():
85+ assert False
diff -r 59fa4cf96410 -r 224c887cdfd8 pytst/writers/RPy/__init__.py
--- a/pytst/writers/RPy/__init__.py Tue Oct 03 16:42:37 2023 +0200
+++ b/pytst/writers/RPy/__init__.py Tue Oct 03 17:24:58 2023 +0200
@@ -55,22 +55,35 @@
5555 def gen_file(self, ext='.rpy'):
5656 return self._top / self._gen / self.base_name.with_suffix(ext)
5757
58+ def read_ref(self) -> str: #File content as one (long, multi-line) string (aka Text)
59+ with open(self.ref_file) as f:
60+ ref = f.read()
61+ logger.debug("---------- ref: ----------\n%s\n==========================", ref)
62+ return ref
63+
64+ def write_gen(self,txt) ->None:
65+ with open(self.gen_file, 'w') as f:
66+ f.write(txt)
67+ logger.info("Saved rendered protocol in: %s", self.gen_file)
68+
5869
5970 @pytest.fixture
6071 def generatedProtocol_verifier(T_Protocol):
6172 def matcher(aigr_mock, td, save_file=False):
6273 out = T_Protocol.render(protocols=(aigr_mock,))
6374 logger.debug("---------- out: (%s)----------\n%s", aigr_mock, out)
75+
6476 if save_file:
65- with open(td.gen_file, 'w') as f:
66- f.write(out)
67- logger.info("Saved rendered protocol in: %s", td.gen_file)
68- ref = open(td.ref_file).read()
69- logger.debug("---------- ref: ----------\n%s\n==========================", out)
77+ td.write_gen(out)
7078
71- #assert line by line: gives better feedback when they do not match
72- for n, (o,r) in enumerate(zip(out.splitlines(keepends=True), ref.splitlines(keepends=True), strict=True)):
73- assert o == r, "line %s does not match: >>%s<< != <<%s>>" % (n, o.strip('\n'), r.strip('\n'))
79+ ref = td.read_ref()
80+ try:
81+ #assert line by line: gives better feedback when they do not match
82+ for n, (o,r) in enumerate(zip(out.splitlines(keepends=True), ref.splitlines(keepends=True), strict=True)):
83+ assert o == r, "line %s does not match: >>%s<< != <<%s>>" % (n, o.strip('\n'), r.strip('\n'))
84+ except ValueError as err:
85+ assert False, f"Note the same length: files {td.gen_file} and {td.ref_file}"
86+
7487 assert out == ref #Should be needed
7588 return matcher
7689