Repository: DevOps-MBSE/AaC (language: python)

Issue:
📋 [TASK] - Improve Tests in Root Schema Must Have Name Unit Tests
### Parent Feature

#844

### Task Description

As an AaC Test Developer, I want to expand the test coverage in my unit tests, so that I can have more confidence in the robustness of my code.

### Acceptance Criteria

- [ ] Update test logic as necessary to expand test coverage. 
  - [ ] Happy path and sad path at a minimum
- [ ] (Stretch) Incorporate a behave feature file for testing if applicable.
- [ ] Run `flake8` on the targeted test directory and address findings.
- [ ] Document any identified gaps.

### Unresolved questions

_No response_


Discussion / hints:

Fix patch:
diff --git a/python/features/plugins/root_schema_must_have_name.feature b/python/features/plugins/root_schema_must_have_name.feature
new file mode 100644
index 000000000..2ff36ddd2
--- /dev/null
+++ b/python/features/plugins/root_schema_must_have_name.feature
@@ -0,0 +1,11 @@
+Feature: Root Schema Must Have Name Evaluation
+
+    Scenario: Check the root schema file
+        Given I have the "./features/root_schema/root_schema.aac" file
+        When I run the "check" command with arguments "./features/root_schema/root_schema.aac" and with no flags
+        Then I should receive a message that the command was successful
+
+    Scenario: Check the bad root schema file
+        Given I have the "./features/root_schema/root_schema_bad.aac" file
+        When I run the "check" command with arguments "./features/root_schema/root_schema_bad.aac" and with no flags
+        Then I should receive a message that the command was not successful
diff --git a/python/features/root_schema/root_schema.aac b/python/features/root_schema/root_schema.aac
new file mode 100644
index 000000000..33a0b1659
--- /dev/null
+++ b/python/features/root_schema/root_schema.aac
@@ -0,0 +1,16 @@
+schema:
+    name: Format
+    package: aac.lang
+    root: format
+    description: A definition that represents definable format.
+    fields:
+        - name: name
+          type: string
+          description: The name of the format.
+          is_required: true
+        - name: package
+          type: string
+          description: The package of the format.
+        - name: description
+          type: string
+          description: The description of the format
diff --git a/python/features/root_schema/root_schema_bad.aac b/python/features/root_schema/root_schema_bad.aac
new file mode 100644
index 000000000..983558f3e
--- /dev/null
+++ b/python/features/root_schema/root_schema_bad.aac
@@ -0,0 +1,12 @@
+schema:
+    name: Format
+    package: aac.lang
+    root: format
+    description: A definition that represents definable format.
+    fields:
+        - name: package
+          type: string
+          description: The package of the format.
+        - name: description
+          type: string
+          description: The description of the format
diff --git a/python/src/aac/__init__.py b/python/src/aac/__init__.py
index c2678941c..6bf61b4a0 100644
--- a/python/src/aac/__init__.py
+++ b/python/src/aac/__init__.py
@@ -12,7 +12,7 @@
 import logging
 import os
 
-__version__ = "0.4.39"
+__version__ = "0.4.40"
 
 __log_file_name__ = os.path.join(os.path.dirname(__file__), "aac.log")
 


Test patch:
diff --git a/python/tests/test_aac/plugins/root_schema_must_have_name/test_root_schema_must_have_name.py b/python/tests/test_aac/plugins/root_schema_must_have_name/test_root_schema_must_have_name.py
index 5490db0d2..a85a19216 100644
--- a/python/tests/test_aac/plugins/root_schema_must_have_name/test_root_schema_must_have_name.py
+++ b/python/tests/test_aac/plugins/root_schema_must_have_name/test_root_schema_must_have_name.py
@@ -19,16 +19,18 @@
 class TestRootSchemaMustHaveName(TestCase):
 
     def test_root_schema_has_name(self):
-       context = LanguageContext()
-       definitions = context.parse_and_load(root_schema_with_name)
-       result = root_schema_has_name(definitions[0].instance, definitions[0], context.get_definitions_by_name("Schema")[0].instance)
-       self.assertTrue(result.is_success())
-       context.remove_definitions(definitions)
-
-       definitions = context.parse_and_load(root_schema_without_name)
-       result = root_schema_has_name(definitions[0].instance, definitions[0], context.get_definitions_by_name("Schema")[0].instance)
-       self.assertFalse(result.is_success())
-       context.remove_definitions(definitions)
+        context = LanguageContext()
+        definitions = context.parse_and_load(root_schema_with_name)
+        result = root_schema_has_name(definitions[0].instance, definitions[0], context.get_definitions_by_name("Schema")[0].instance)
+        self.assertTrue(result.is_success())
+        context.remove_definitions(definitions)
+
+    def test_root_schema_has_name_fail(self):
+        context = LanguageContext()
+        definitions = context.parse_and_load(root_schema_without_name)
+        result = root_schema_has_name(definitions[0].instance, definitions[0], context.get_definitions_by_name("Schema")[0].instance)
+        self.assertFalse(result.is_success())
+        context.remove_definitions(definitions)
 
 
 root_schema_with_name = """