Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions strictdoc/git/project_diff_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
SDocNodeField,
)
from strictdoc.backend.sdoc.models.reference import (
ChildReqReference,
ParentReqReference,
)
from strictdoc.backend.sdoc.models.section import SDocSection
Expand Down Expand Up @@ -134,13 +135,10 @@ def contains_requirement_relations(
if other_requirement is None:
return False
for reference_ in other_requirement.relations:
if isinstance(reference_, ParentReqReference):
parent_reference: ParentReqReference = assert_cast(
reference_, ParentReqReference
)
if isinstance(reference_, (ParentReqReference, ChildReqReference)):
if (
parent_reference.ref_uid == relation_uid
and parent_reference.role == relation_role
reference_.ref_uid == relation_uid
and reference_.role == relation_role
):
return True
return False
Expand Down Expand Up @@ -994,7 +992,9 @@ def analyze_document(
)

for reference_ in node.relations:
if isinstance(reference_, ParentReqReference):
if isinstance(
reference_, (ParentReqReference, ChildReqReference)
):
hasher.update(reference_.ref_uid.encode("utf-8"))
if reference_.role is not None:
hasher.update(reference_.role.encode("utf-8"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[DOCUMENT]
TITLE: Hello world doc 1

[REQUIREMENT]
UID: REQ-1
TITLE: Requirement #1
STATEMENT: System shall do 1.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[DOCUMENT]
TITLE: Hello world doc 2

[REQUIREMENT]
UID: REQ-2
TITLE: Requirement #2
STATEMENT: System shall do 2.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[DOCUMENT]
TITLE: Hello world doc 1

[GRAMMAR]
ELEMENTS:
- TAG: TEXT
FIELDS:
- TITLE: UID
TYPE: String
REQUIRED: False
- TITLE: STATEMENT
TYPE: String
REQUIRED: False
- TAG: REQUIREMENT
FIELDS:
- TITLE: UID
TYPE: String
REQUIRED: False
- TITLE: TITLE
TYPE: String
REQUIRED: False
- TITLE: STATEMENT
TYPE: String
REQUIRED: False
RELATIONS:
- TYPE: Child

[REQUIREMENT]
UID: REQ-1
TITLE: Requirement #1
STATEMENT: System shall do 1.
RELATIONS:
- TYPE: Child
VALUE: REQ-2
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[DOCUMENT]
TITLE: Hello world doc 2

[REQUIREMENT]
UID: REQ-2
TITLE: Requirement #2
STATEMENT: System shall do 2.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[project]
title = "Test Project"

features = [
"DIFF",
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
RUN: %strictdoc diff %S/lhs %S/rhs --output-dir Output

RUN: cat %S/Output/changelog.html | filecheck %s --check-prefix=CHECK-CHANGELOG

CHECK-CHANGELOG:<div class="sdoc-table_key_value-key">Nodes modified</div>
CHECK-CHANGELOG:<div class="sdoc-table_key_value-value">1</div>

CHECK-CHANGELOG:<div class="sdoc-table_key_value-key">Documents modified</div>
CHECK-CHANGELOG:<div class="sdoc-table_key_value-value">No documents were modified.</div>

CHECK-CHANGELOG:<div class="sdoc-table_key_value-key">Sections modified</div>
CHECK-CHANGELOG:<div class="sdoc-table_key_value-value">No sections were modified.</div>

CHECK-CHANGELOG:<div class="sdoc-table_key_value-key">Requirements modified</div>
CHECK-CHANGELOG:<div class="sdoc-table_key_value-value">1 (1 modified)</div>

CHECK-CHANGELOG:# 1
CHECK-CHANGELOG:Requirement modified

CHECK-CHANGELOG:REQ-1
CHECK-CHANGELOG:Requirement #1
CHECK-CHANGELOG:System shall do 1.

CHECK-CHANGELOG:REQ-1
CHECK-CHANGELOG:Requirement #1
CHECK-CHANGELOG:System shall do 1.
CHECK-CHANGELOG:text="child-relation"{{.*}}REQ-2
CHECK-CHANGELOG:Requirement #2

RUN: cat %S/Output/diff.html | filecheck %s --check-prefix=CHECK-DIFF

# The left document: no specific assertions.
CHECK-DIFF: modified="left"

# The right column has REQ-1 and REQ-2 pointing to each other as child and parent.
CHECK-DIFF: modified="right"
CHECK-DIFF:<span class="badge" text="UID"></span><span class="sdoc_pre_content">REQ-1</span>
CHECK-DIFF:<span class="badge" text="child-relation"></span><div class="sdoc_pre_content"><b>REQ-2</b>
CHECK-DIFF:<span class="badge" text="UID"></span><span class="sdoc_pre_content">REQ-2</span>
CHECK-DIFF:<span class="badge" text="relation"></span><div class="sdoc_pre_content"><b>REQ-1</b>
Loading