Skip to content

Commit 3a740ff

Browse files
committed
Added new testcases for attached attributes.
1 parent af3125d commit 3a740ff

File tree

3 files changed

+93
-1
lines changed

3 files changed

+93
-1
lines changed

pyEDAA/ProjectModel/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
__email__ = "[email protected]"
3535
__copyright__ = "2014-2025, Patrick Lehmann, Unai Martinez-Corral"
3636
__license__ = "Apache License, Version 2.0"
37-
__version__ = "0.5.0"
37+
__version__ = "0.5.1"
3838
__keywords__ = ["eda project", "model", "abstract", "xilinx", "vivado", "osvvm", "file set", "file group", "test bench", "test harness"]
3939

4040
from os.path import relpath as path_relpath

tests/unit/File.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,55 @@ def test_AttachedToFileSet(self) -> None:
238238

239239
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
240240
self.assertEqual("-5", file[KeyValueAttribute]["id1"])
241+
242+
def test_AttachedToDesign(self) -> None:
243+
project = Project("project", rootDirectory=Path("project"))
244+
design = Design("design", directory=Path("designA"), project=project)
245+
fileSet = FileSet("fileset", design=design)
246+
file = File(Path("file_A1.vhdl"), fileSet=fileSet)
247+
248+
design[KeyValueAttribute] = KeyValueAttribute()
249+
250+
attribute = fileSet[KeyValueAttribute]
251+
attribute["id1"] = "15"
252+
design[KeyValueAttribute]["id2"] = "25"
253+
254+
self.assertEqual("15", attribute["id1"])
255+
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
256+
self.assertEqual("15", file[KeyValueAttribute]["id1"])
257+
258+
self.assertEqual("25", attribute["id2"])
259+
self.assertEqual("25", fileSet[KeyValueAttribute]["id2"])
260+
self.assertEqual("25", file[KeyValueAttribute]["id2"])
261+
262+
file[KeyValueAttribute] = KeyValueAttribute()
263+
file[KeyValueAttribute]["id1"] = "-5"
264+
265+
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
266+
self.assertEqual("-5", file[KeyValueAttribute]["id1"])
267+
268+
def test_AttachedToProject(self) -> None:
269+
project = Project("project", rootDirectory=Path("project"))
270+
design = Design("design", directory=Path("designA"), project=project)
271+
fileSet = FileSet("fileset", design=design)
272+
file = File(Path("file_A1.vhdl"), fileSet=fileSet)
273+
274+
project[KeyValueAttribute] = KeyValueAttribute()
275+
276+
attribute = fileSet[KeyValueAttribute]
277+
attribute["id1"] = "15"
278+
project[KeyValueAttribute]["id2"] = "25"
279+
280+
self.assertEqual("15", attribute["id1"])
281+
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
282+
self.assertEqual("15", file[KeyValueAttribute]["id1"])
283+
284+
self.assertEqual("25", attribute["id2"])
285+
self.assertEqual("25", fileSet[KeyValueAttribute]["id2"])
286+
self.assertEqual("25", file[KeyValueAttribute]["id2"])
287+
288+
file[KeyValueAttribute] = KeyValueAttribute()
289+
file[KeyValueAttribute]["id1"] = "-5"
290+
291+
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
292+
self.assertEqual("-5", file[KeyValueAttribute]["id1"])

tests/unit/FileSet.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,3 +361,43 @@ def test_DelAttribute_Normal(self) -> None:
361361
fileSet[Attr] = 5
362362

363363
del fileSet[Attr]
364+
365+
366+
class AttributeResolution(TestCase):
367+
def test_AttachedToFileSet(self) -> None:
368+
project = Project("project", rootDirectory=Path("project"))
369+
design = Design("design", directory=Path("designA"), project=project)
370+
fileSet = FileSet("fileset", design=design)
371+
372+
fileSet[KeyValueAttribute] = KeyValueAttribute()
373+
374+
attribute = fileSet[KeyValueAttribute]
375+
attribute["id1"] = "5"
376+
377+
self.assertEqual("5", attribute["id1"])
378+
self.assertEqual("5", fileSet[KeyValueAttribute]["id1"])
379+
380+
def test_AttachedToDesign(self) -> None:
381+
project = Project("project", rootDirectory=Path("project"))
382+
design = Design("design", directory=Path("designA"), project=project)
383+
fileSet = FileSet("fileset", design=design)
384+
385+
design[KeyValueAttribute] = KeyValueAttribute()
386+
387+
attribute = design[KeyValueAttribute]
388+
attribute["id1"] = "15"
389+
design[KeyValueAttribute]["id2"] = "25"
390+
391+
self.assertEqual("15", attribute["id1"])
392+
self.assertEqual("15", design[KeyValueAttribute]["id1"])
393+
self.assertEqual("15", fileSet[KeyValueAttribute]["id1"])
394+
395+
self.assertEqual("25", attribute["id2"])
396+
self.assertEqual("25", design[KeyValueAttribute]["id2"])
397+
self.assertEqual("25", fileSet[KeyValueAttribute]["id2"])
398+
399+
fileSet[KeyValueAttribute] = KeyValueAttribute()
400+
fileSet[KeyValueAttribute]["id1"] = "-5"
401+
402+
self.assertEqual("15", design[KeyValueAttribute]["id1"])
403+
self.assertEqual("-5", fileSet[KeyValueAttribute]["id1"])

0 commit comments

Comments
 (0)