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)
# 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',
def CreateConnectionFolder(folderpath, parent_namespace): del parent_namespace # Unused by ConnectionFolder. return connection_lib.ConnectionFolder(folderpath)