def test_name():
    # Arrange
    osbreed = OsBreed("test")

    # Act
    with pytest.raises(TypeError) as e_info:
        osbreed.name = ""
예제 #2
0
def test_breed_add_type_error():
    # Arrange
    osbreed = OsBreed("test")

    # Act & Arrange
    with pytest.raises(ValueError):
        osbreed.osversion_add(0, "")
예제 #3
0
def test_osversions():
    # Arrange
    osbreed = OsBreed("suse")
    new_value = []

    # Act & Assert
    with pytest.raises(TypeError):
        osbreed.osversions = new_value
    assert isinstance(osbreed._osversions, collections.OrderedDict)
예제 #4
0
def test_name():
    # Arrange
    osbreed = OsBreed("test")

    # Act
    osbreed.name = "Test"

    # Assert
    osbreed.name = "Test"
예제 #5
0
def test_osversions_delete():
    # Arrange
    osbreed = OsBreed("suse")

    # Act
    osbreed.osversion_add("susesp1", Osversion())
    del osbreed.osversions

    # Arrange
    assert osbreed.osversions == collections.OrderedDict()
def test_breed_add():
    # Arrange
    itemname = "test"
    osbreed = OsBreed(itemname)

    # Act
    osbreed.osversion_add(itemname, Osversion())

    # Assert
    assert itemname in osbreed.osversions
예제 #7
0
def test_decode():
    # Arrange
    breed = OsBreed("test")
    data = {"version1": {}, "version2": {}}

    # Act
    breed.decode(data)

    # Assert
    assert breed.osversions["version1"]
    assert breed.osversions["version2"]
예제 #8
0
 def jsontomodels(self):
     """
     Convert the loaded JSON to the internal modules. Without calling this the loaded data will not be available for
     manipulation.
     """
     missing_rootkey = object()
     breeds = self.signaturesjson.get(self._rootkey, missing_rootkey)
     if breeds is missing_rootkey:
         raise AttributeError("Missing Rootkey \"" + self._rootkey + "\".")
     for key in breeds:
         breed = OsBreed(key)
         breed.decode(breeds[key])
         self.osbreeds.append(breed)
예제 #9
0
def test_encode():
    # Arrange
    breed = OsBreed("test")
    breed.osversion_add("test1", Osversion())
    breed.osversion_add("test2", Osversion())

    # Act
    result = breed.encode()

    # Assert
    assert isinstance(result, dict)
    assert "test1" in result
    assert "test2" in result
    assert isinstance(result["test1"], dict)
예제 #10
0
def test_name_delete():
    # Arrange
    osbreed = OsBreed("test")

    # Act & Assert
    with pytest.raises(TypeError):
        del osbreed.name
    assert osbreed.name == "test"
예제 #11
0
    def addosbreed(self, name: str):
        """
        Add a new :class:`OsBreed`.

        :param name: The name of the new breed. Must not exist in the currently loaded models.
        """
        if name in [x.name for x in self.osbreeds]:
            raise ValueError("Breed \"%s\" already in the list of breeds!" %
                             name)
        self.osbreeds.append(OsBreed(name))
def test_breed_remove():
    # Arrange
    itemname = "test"
    osbreed = OsBreed(itemname)
    osbreed.osversion_add(itemname, Osversion())

    # Act
    osbreed.osversion_remove(itemname)
예제 #13
0
def test_signaturesjson(input_data, result, raises):
    # Arrange
    os_signatures = Signatures()
    with raises:
        os_signatures.importsignatures(ImportTypes.STRING, input_data)

        # Act
        os_signatures.signaturesjson = input_data

    # Assert
    assert result == os_signatures.signaturesjson


@pytest.mark.parametrize("input_data,expected_data", [
    ("{\"breeds\": {}}", []),
    ("{\"breeds\": {\"suse\": {}}}", [OsBreed("suse")])
])
def test_jsontomodels(input_data, expected_data):
    # Arrange
    os_signatures = Signatures()
    os_signatures.importsignatures(ImportTypes.STRING, input_data)

    # Act
    os_signatures.jsontomodels()

    # Assert
    assert expected_data == os_signatures.osbreeds


def test_addosbreed():
    # Arrange
예제 #14
0
def test_osbreed_non_equality():
    # Arrange, Act & Assert
    assert not OsBreed("test") == Osversion()
def test_osbreed_equality():
    assert OsBreed("test") == OsBreed("test")
예제 #16
0
def test_breed_no_name():
    # Arrange, Act & Assert
    with pytest.raises(TypeError) as e_info:
        OsBreed()
예제 #17
0
def test_osbreed_equality():
    # Arrange, Act & Assert
    assert OsBreed("test") == OsBreed("test")
def test_breed_no_name():
    with pytest.raises(TypeError) as e_info:
        OsBreed()
 def addosbreed(self, name):
     self.osbreeds.append(OsBreed(name))
 def jsontomodels(self):
     for k, v in self.signaturesjson.get("breeds"):
         breed = OsBreed(k)
         breed.decode(v)
         self.osbreeds.append(breed)