#!/usr/bin/python3 -OO # Copyright 2007-2025 by The SABnzbd-Team (sabnzbd.org) # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. """ tests.test_nzbobject - Testing functions in nzbobject.py """ from sabnzbd.nzb import NzbObject from sabnzbd.config import ConfigCat from sabnzbd.constants import NORMAL_PRIORITY from sabnzbd.filesystem import globber from tests.testhelper import * @pytest.mark.usefixtures("clean_cache_dir") class TestNZO: @set_config({"download_dir": SAB_CACHE_DIR}) def test_nzo_basic(self): # Need to create the Default category, as we would in normal instance # Otherwise it will try to save the config def_cat = ConfigCat("*", {"pp": 3, "script": "None", "priority": NORMAL_PRIORITY}) # Create empty object, normally used to grab URL's nzo = NzbObject("test_basic") assert nzo.work_name == "test_basic" assert not nzo.files # Create NZB-file to import nzb_fp = create_and_read_nzb_fp("basic_rar5") # Very basic test of NZO creation with data nzo = NzbObject("test_basic_data", nzb_fp=nzb_fp) assert nzo.final_name == "test_basic_data" assert nzo.files assert nzo.files[0].filename == "testfile.rar" assert nzo.bytes == 283 assert nzo.files[0].bytes == 283 # work_name can be trimmed in Windows due to max-path-length assert "test_basic_data".startswith(nzo.work_name) assert os.path.exists(nzo.admin_path) # Check if there's an nzf file and the backed-up nzb assert globber(nzo.admin_path, "*.nzb.gz") assert globber(nzo.admin_path, "SABnzbd_nzf*") # Should have picked up the default category settings assert nzo.cat == "*" assert nzo.script == def_cat.script() == "None" assert nzo.priority == def_cat.priority() == NORMAL_PRIORITY assert nzo.repair and nzo.unpack and nzo.delete # TODO: More checks!