Beispiel #1
0
def test_get_wpk_file(grp_mock, pwd_mock, versions_mock, get_req_mock, open_mock, sha1_mock, test_data, agent_id):
    """
    Test _get_wpk_file method
    """
    def get_manager_info(available_versions):
        """
        Return hash from manager version in available_versions list
        """
        for version in available_versions:
            if WazuhVersion(version[0]) == WazuhVersion(get_manager_version()):
                return version[0], version[1]
        raise Exception  # raise an exception if there is not hash for manager version

    def get_package_version(package_name):
        """
        Return package version from package_name
        """
        return re.search(r'^wazuh_agent_(v\d+\.\d+\.\d+)\w+\.wpk$', package_name).group(1)

    # mock _get_versions method with a list of available versions
    versions_mock.return_value = wpk_versions

    with patch('sqlite3.connect') as mock_db:
        mock_db.return_value = test_data.global_db
        agent = Agent(agent_id)
        agent._load_info_from_DB()
        # mock return value of hexdigest function
        manager_version, hash_manager_version = get_manager_info(wpk_versions)
        sha1_mock.return_value.hexdigest.return_value = hash_manager_version

        result = agent._get_wpk_file()

        assert get_package_version(result[0]) == manager_version
        assert result[1] == hash_manager_version