• R/O
  • SSH

提交

标签
No Tags

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

修订版bbe50c1150adc02cffc1f2ee736d873616af60a2 (tree)
时间2023-10-03 20:12:46
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

Refactored pytst on protocol-file-generation even more

更改概述

差异

diff -r be70530ee8a4 -r bbe50c1150ad Makefile
--- a/Makefile Tue Oct 03 12:46:34 2023 +0200
+++ b/Makefile Tue Oct 03 13:12:46 2023 +0200
@@ -1,6 +1,7 @@
1-default: all
1+default: most
22
3-all: current demo test mutmut pyanalyse XXX missing todo diff_TestDoubles
3+all: most current demo test mutmut pyanalyse XXX missing todo
4+most: current test mutmut pyanalyse todo
45
56 NOTES: CC2CpyNote
67 include Mk/RPy.mk
@@ -28,15 +29,12 @@
2829 include Mk/testing.mk
2930 include Mk/helpful.mk
3031
31-diff_TestDoubles:
32- diff -w -rs TestDoubles/reference/ TestDoubles/_generated/
33-
3432 missing: missing_visitor missing_serialization
3533 open: coverage-open mutmut-open
3634 remake: veryclean coverage mutmut open
3735
38-clean_generated:
39- rm -f TestDoubles/_generated/*.* TestDoubles/_generated/*/*.*
36+clean_generated:; #None
37+
4038 clean_caches:
4139 find . -type d -name __pycache__ -print0 | xargs -0 rm -r
4240 find . -type d -name .pytest_cache -print0 | xargs -0 rm -r
diff -r be70530ee8a4 -r bbe50c1150ad pytst/writers/RPy/__init__.py
--- a/pytst/writers/RPy/__init__.py Tue Oct 03 12:46:34 2023 +0200
+++ b/pytst/writers/RPy/__init__.py Tue Oct 03 13:12:46 2023 +0200
@@ -1,12 +1,10 @@
11 # (C) Albert Mietus, 2023. Part of Castle/CCastle project -- PYTEST init for RPY
2+import logging; logger = logging.getLogger(__name__)
23
3-import logging; logger = logging.getLogger(__name__)
44 import pytest
5-
65 from pathlib import Path
76 import os
87 from dataclasses import dataclass
9-
108 from castle.aigr import Event, Protocol
119 from castle.writers import RPy
1210
@@ -24,7 +22,6 @@
2422 return RPy.Template("ProtocolDataStructures.jinja2")
2523
2624
27-
2825 def assert_marker(marker, txt, need=None, msg=None):
2926 lines = txt.splitlines()
3027 c = sum(1 if (marker in line) else 0 for line in lines)
@@ -42,10 +39,10 @@
4239 return txt +'\n' if (txt[-1] != '\n') else txt
4340
4441
45-
4642 class TstDoubles():
4743 _top = Path('TestDoubles')
48- _ref, _gen = Path('reference'), Path('_generated')
44+ _ref = Path('reference')
45+ #_ref = Path('_generated') #Not used anymore
4946
5047 def __init__(self, base_name):
5148 self.base_name = Path(base_name)
@@ -54,8 +51,15 @@
5451 def ref_file(self, ext='.rpy'):
5552 return self._top / self._ref / self.base_name.with_suffix(ext)
5653
57- @property
58- def gen_file(self, ext='.rpy'):
59- return self._top / self._gen / self.base_name.with_suffix(ext)
54+ #@property
55+ #def gen_file(self, ext='.rpy'):
56+ # return self._top / self._gen / self.base_name.with_suffix(ext)
6057
6158
59+@pytest.fixture
60+def generatedProtocol_verifier(T_Protocol):
61+ def matcher(aigr_mock, td):
62+ out = T_Protocol.render(protocols=(aigr_mock,))
63+ ref = open(td.ref_file).read()
64+ assert out == ref
65+ return matcher
diff -r be70530ee8a4 -r bbe50c1150ad pytst/writers/RPy/test_0_templating.py
--- a/pytst/writers/RPy/test_0_templating.py Tue Oct 03 12:46:34 2023 +0200
+++ b/pytst/writers/RPy/test_0_templating.py Tue Oct 03 13:12:46 2023 +0200
@@ -8,7 +8,7 @@
88 from . import *
99 from castle.writers import RPy
1010
11-my_dir = get_dirPath_of_file(__file__)
11+my_dir = get_dirPath_of_file(__file__)
1212 template_r_dir = "./templates/"
1313 template_a_dir = my_dir / template_r_dir
1414
diff -r be70530ee8a4 -r bbe50c1150ad pytst/writers/RPy/test_99_SieveMoats.py
--- a/pytst/writers/RPy/test_99_SieveMoats.py Tue Oct 03 12:46:34 2023 +0200
+++ b/pytst/writers/RPy/test_99_SieveMoats.py Tue Oct 03 13:12:46 2023 +0200
@@ -1,24 +1,10 @@
11 # (C) Albert Mietus, 2023. Part of Castle/CCastle project
2-
32 import logging; logger = logging.getLogger(__name__)
4-import filecmp
53
64 import pytest
7-
85 from TestDoubles.AIGR.protocols import Sieve
9-
10-from . import T_Protocol, TstDoubles
11-from castle.writers import RPy
12-
13-
14-@pytest.fixture
15-def generatedProtocol_verifier():
16- def matcher(aigr_mock, td):
17- template = RPy.Template("protocol.jinja2")
18- out = template.render(protocols=(aigr_mock,))
19- ref = open(td.ref_file).read()
20- assert out == ref
21- return matcher
6+from . import TstDoubles, generatedProtocol_verifier, T_Protocol
7+##Note: T_Protocol is used in generatedProtocol_verifier; but need to be in this scope
228
239
2410 def test_01_StartSieve(generatedProtocol_verifier):
@@ -31,5 +17,5 @@
3117
3218 @pytest.mark.skip("After SlowStart")
3319 def test_03_SimpleSieve(generatedProtocol_verifier):
34- assert False
20+ generatedProtocol_verifier(aigr_mock=Sieve.SimpleSieve, td=TstDoubles('protocols/SimpleSieve'))
3521