def test_debug_print_001(capsys): """Test printing the content. Test printing content with print. This is a development test which must directly print the snippets with the test case helper method. """ output = ( '1. Remove all docker containers with volumes @docker [54e41e9b52a02b63]', '', ' $ docker rm --volumes $(docker ps --all --quiet)', '', ' # cleanup,container,docker,docker-ce,moby', ' > https://docs.docker.com/engine/reference/commandline/rm/', '', ' ! category : snippet', ' ! created : 2017-10-14T19:56:31.000001+00:00', ' ! description : ', ' ! digest : 54e41e9b52a02b631b5c65a6a053fcbabc77ccd42b02c64fdfbc76efdb18e319 (True)', ' ! filename : ', ' ! id : a1cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! name : ', ' ! source : ', ' ! updated : 2017-10-14T19:56:31.000001+00:00', ' ! uuid : 11cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! versions : ', '', '2. Remove docker image with force @docker [53908d68425c61dc]', '', ' $ docker rm --force redis', '', ' # cleanup,container,docker,docker-ce,moby', ' > https://docs.docker.com/engine/reference/commandline/rm/', ' > https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes', '', ' ! category : snippet', ' ! created : 2017-10-14T19:56:31.000001+00:00', ' ! description : ', ' ! digest : 53908d68425c61dc310c9ce49d530bd858c5be197990491ca20dbe888e6deac5 (True)', ' ! filename : ', ' ! id : a2cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! name : ', ' ! source : ', ' ! updated : 2017-10-14T19:56:31.000001+00:00', ' ! uuid : 12cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! versions : ', '', '# collection meta', ' ! total : 2' ) print(Content.output()) # Part of the test. out, err = capsys.readouterr() out = Helper.remove_ansi(out) assert Const.NEWLINE.join(output) in out assert not err
def test_collection_operations_001(capsys): """Test collection data class operations. Verify that collection class implements data class methods correctly. In this case there are no resources in collection. """ collection = Collection() # Collection with len(). assert not collection # Collection with condition. if collection: assert 0 else: assert 1 # Collection with negative condition. if not collection: assert 1 else: assert 0 # Equality of two empty collections. collection2 = Collection() if collection == collection2: assert 1 else: assert 0 # Non equality of two empty collections. if collection != collection2: assert 0 else: assert 1 # Iterate resources in collection. for resource in collection: resource.digest = resource.digest assert 0 # Get list of keys (digest) from collection. assert not collection.keys() # Get list of values (resources) from collection. assert not collection.values() # Test generator. resources = collection.resources() with pytest.raises(StopIteration): next(resources) # Printing collection. output = ('# collection meta', ' ! total : 0', '', '') print(collection) # Part of the test. out, err = capsys.readouterr() out = Helper.remove_ansi(out) assert out == Const.NEWLINE.join(output) assert not err # Access non existent resource from collection. with pytest.raises(KeyError): resource = collection[0] # Delete non existent resource from collection with string. with pytest.raises(KeyError): del collection['012123'] # Delete non existent resource from collection with number. with pytest.raises(KeyError): del collection[0] # Two created objects must not point ot same reference. if collection is collection2: assert 0 # Reference of object must be to the same object. collection3 = collection if collection3 is not collection: assert 0
def test_collection_operations_002(capsys): # pylint: disable=too-many-branches """Test collection data class operations. Verify that collection class implements data class methods correctly. In this case there is only one resource in collection. """ collection = Collection() collection.load_dict( Helper.EXPORT_TIME, { 'data': [{ 'data': [ 'tar cvfz mytar.tar.gz --exclude="mytar.tar.gz" ./', 'tar xfO mytar.tar.gz manifest.json# Cat file in compressed tar.' ], 'brief': 'Manipulate compressed tar files', 'groups': ['linux'], 'tags': ['howto', 'linux', 'tar', 'untar'], 'category': Const.SNIPPET }] }) # Collection with len(). assert len(collection) == 1 # Collection with condition. if collection: assert 1 else: assert 0 # Collection with negative condition. if not collection: assert 0 else: assert 1 # Equality of two different collections where the UUID differs. collection2 = Collection() collection2.load_dict( Helper.EXPORT_TIME, { 'data': [{ 'data': [ 'tar cvfz mytar.tar.gz --exclude="mytar.tar.gz" ./', 'tar xfO mytar.tar.gz manifest.json# Cat file in compressed tar.' ], 'brief': 'Manipulate compressed tar files', 'groups': ['linux'], 'tags': ['howto', 'linux', 'tar', 'untar'], 'category': Const.SNIPPET }] }) if collection == collection2: assert 0 else: assert 1 # Non equality of two different collections. if collection != collection2: assert 1 else: assert 0 # Equality of two same collections. collection2 = collection if collection == collection2: assert 1 else: assert 0 # Non equality of same collections. if collection != collection2: assert 0 else: assert 1 # Equality of two collection with different length. collection2 = Collection() if collection == collection2: assert 0 else: assert 1 # Equality collection and random type. if collection == 1: assert 0 else: assert 1 # Iterate resources in collection. i = 0 for resource in collection: resource.digest = resource.digest i = i + 1 assert i == 1 # Get list of keys (digest) from collection. assert len(collection.keys()) == 1 assert collection.keys() == list([ 'e79ae51895908c5a40e570dc60a4dd594febdecf781c77c7b3cad37f9e0b7240' ]) # Get list of values (resources) from collection. assert len(collection.values()) == 1 assert collection.values()[0] == collection[ 'e79ae51895908c5a40e570dc60a4dd594febdecf781c77c7b3cad37f9e0b7240'] # Test generator. resources = collection.resources() assert next(resources) == collection[ 'e79ae51895908c5a40e570dc60a4dd594febdecf781c77c7b3cad37f9e0b7240'] with pytest.raises(StopIteration): next(resources) # Printing collection. output = ( '1. Manipulate compressed tar files @linux [e79ae51895908c5a]', '', ' $ tar cvfz mytar.tar.gz --exclude="mytar.tar.gz" ./', ' $ tar xfO mytar.tar.gz manifest.json# Cat file in compressed tar.', '', ' # howto,linux,tar,untar', '', ' ! category : snippet', ' ! created : 2018-02-02T02:02:02.000001+00:00', ' ! description : ', ' ! digest : e79ae51895908c5a40e570dc60a4dd594febdecf781c77c7b3cad37f9e0b7240 (True)', ' ! filename : ', ' ! id : a1cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! languages : ', ' ! name : ', ' ! source : ', ' ! updated : 2018-02-02T02:02:02.000001+00:00', ' ! uuid : a1cd5827-b6ef-4067-b5ac-3ceac07dde9f', ' ! versions : ', '', '# collection meta', ' ! total : 1', '', '') print(collection) # Part of the test. out, err = capsys.readouterr() out = Helper.remove_ansi(out) assert out == Const.NEWLINE.join(output) assert not err with pytest.raises(KeyError): resource = collection[0]