_deb_distros = ('debian', 'ubuntu')
_rpm_distros = ('fedora', 'rhel', 'centos', 'suse')
- def __init__(self):
- pass
+ def __init__(self, name=None, version=None):
+ self.name = name
+ self.version = version
+ self._set_package_type()
@classmethod
def from_lsb_release(cls, lsb_release_str):
obj.version = obj._get_value(str_, 'Release')
- if obj.name in cls._deb_distros:
- obj.package_type = "deb"
- elif obj.name in cls._rpm_distros:
- obj.package_type = "rpm"
+ obj._set_package_type()
return obj
obj.name = cls._get_value(str_, 'ID').lower()
obj.version = cls._get_value(str_, 'VERSION_ID')
- if obj.name in cls._deb_distros:
- obj.package_type = "deb"
- elif obj.name in cls._rpm_distros:
- obj.package_type = "rpm"
+ obj._set_package_type()
return obj
return match.groups()[0].strip(' \t"\'')
return ''
+ def _set_package_type(self):
+ if self.name in self._deb_distros:
+ self.package_type = "deb"
+ elif self.name in self._rpm_distros:
+ self.package_type = "rpm"
+
+ def to_dict(self):
+ return dict(
+ name=self.name,
+ version=self.version,
+ )
+
def __str__(self):
return " ".join([self.name, self.version]).strip()
+
+ def __repr__(self):
+ return "OS(name='{name}', version='{version}')".format(
+ name=self.name, version=self.version)
assert os.name == 'rhel'
assert os.version == '7.0'
assert os.package_type == 'rpm'
+
+ def test_repr(self):
+ os = OS(name='NAME', version='0.1.2')
+ assert repr(os) == "OS(name='NAME', version='0.1.2')"
+
+ def test_to_dict(self):
+ os = OS(name='NAME', version='0.1.2')
+ assert os.to_dict() == dict(name='NAME', version='0.1.2')