def testConnectionFolderAddInvalidConnectionFails(self):
     folder = connection_lib.ConnectionFolder(_GOOD_PATH)
     folder.AddConnection(
         connection_lib.Connection('bad-connection', 'invalid'))
     self.assertNotIn('bad-connection', folder.local_namespace.connections)
     self.assertIsInstance(folder.GetFindings()[0],
                           findings_lib.IllegalCharacterError)
    def testConnectionUniverseGetFindings(self):
        context = findings_lib.FileContext('{0}/file.yaml'.format(_GOOD_PATH))
        folder = connection_lib.ConnectionFolder(_GOOD_PATH)
        folder.AddFinding(
            findings_lib.InconsistentFileLocationError('', context))
        namespace = folder.local_namespace
        namespace.AddFinding(
            findings_lib.DuplicateConnectionDefinitionError(
                connection_lib.Connection('FEEDS'), base_lib.GLOBAL_NAMESPACE))
        connection = connection_lib.Connection('FEEDS', 'description')
        connection.AddFinding(
            findings_lib.MissingConnectionDescriptionWarning(connection))
        namespace.InsertConnection(connection)
        connection_universe = connection_lib.ConnectionUniverse([folder])

        findings = connection_universe.GetFindings()

        self.assertLen(findings, 3)
        self.assertTrue(
            connection_universe.HasFindingTypes([
                findings_lib.InconsistentFileLocationError,
                findings_lib.DuplicateConnectionDefinitionError,
                findings_lib.MissingConnectionDescriptionWarning
            ]))
        self.assertFalse(connection_universe.IsValid())
 def testConnectionFolderAddDuplicateConnectionFails(self):
     folder = connection_lib.ConnectionFolder(_GOOD_PATH)
     folder.AddConnection(connection_lib.Connection('FEEDS', 'description'))
     self.assertIn('FEEDS', folder.local_namespace.connections)
     self.assertEmpty(folder.local_namespace.GetFindings())
     folder.AddConnection(connection_lib.Connection('FEEDS', 'duplicate'))
     self.assertIsInstance(folder.local_namespace.GetFindings()[0],
                           findings_lib.DuplicateConnectionDefinitionError)
    def testConnectionUniverseConnectionIsDefined(self):
        folder = connection_lib.ConnectionFolder(_GOOD_PATH)
        namespace = folder.local_namespace
        namespace.InsertConnection(connection_lib.Connection('FEEDS', 'one'))
        connection_universe = connection_lib.ConnectionUniverse([folder])

        self.assertTrue(connection_universe.IsDefined('FEEDS'))
        self.assertFalse(connection_universe.IsDefined('CONTAINS'))
    def testConnectionUniverseGetConnectionsMap(self):
        folder = connection_lib.ConnectionFolder(_GOOD_PATH)
        namespace = folder.local_namespace
        namespace.InsertConnection(connection_lib.Connection('FEEDS', 'one'))
        namespace.InsertConnection(connection_lib.Connection(
            'CONTAINS', 'two'))
        connection_universe = connection_lib.ConnectionUniverse([folder])

        connections = connection_universe.GetConnectionsMap(
            base_lib.GLOBAL_NAMESPACE)

        self.assertIn('FEEDS', connections)
        self.assertIn('CONTAINS', connections)
    def testConnectionFolderAddFromConfig(self):
        doc = {
            'FEEDS': {
                'description': 'one'
            },
            'CONTAINS': {
                'description': 'two'
            },
        }
        folder = connection_lib.ConnectionFolder(_GOOD_PATH)
        folder.AddFromConfig([doc], '{0}/file.yaml'.format(_GOOD_PATH))

        self.assertCountEqual(['FEEDS', 'CONTAINS'],
                              folder.local_namespace.connections)
        self.assertEmpty(folder.GetFindings())
 def testConnectionFolderNonGlobalNamespace(self):
     folder = connection_lib.ConnectionFolder(_BAD_PATH)
     self.assertTrue(
         folder.HasFindingTypes(
             [findings_lib.InvalidConnectionNamespaceError]))
 def testConnectionFolderAddValidConnection(self):
     folder = connection_lib.ConnectionFolder(_GOOD_PATH)
     folder.AddConnection(connection_lib.Connection('FEEDS', 'description'))
     self.assertIn('FEEDS', folder.local_namespace.connections)
     self.assertEmpty(folder.GetFindings())
 def testConnectionFolderAddFromConfigNotYamlFails(self):
     folder = connection_lib.ConnectionFolder(_GOOD_PATH)
     folder.AddFromConfig([{}], '{0}/file.txt'.format(_GOOD_PATH))
     self.assertIsInstance(folder.GetFindings()[0],
                           findings_lib.InconsistentFileLocationError)
Esempio n. 10
0
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Sets up a minimal connection universe required for testing."""

from yamlformat.validator import connection_lib

CONNECTION_FOLDER = connection_lib.ConnectionFolder(folderpath='connections')
CONNECTION_UNIVERSE = connection_lib.ConnectionUniverse(
    folders=[CONNECTION_FOLDER])

CONNECTION_FOLDER.AddFromConfig(documents=[{
    'CONTAINS': {
        'description': 'foobar',
    },
    'CONTROLS': {
        'description': 'foobar',
    },
    'FEEDS': {
        'description': 'foobar',
    },
    'HAS_PART': {
        'description': 'foobar',
Esempio n. 11
0
 def CreateConnectionFolder(folderpath, parent_namespace):
     del parent_namespace  # Unused by ConnectionFolder.
     return connection_lib.ConnectionFolder(folderpath)