Reach sediments: avoid crash when trying to open Edit_reach_sediment_layer without any reach selected

split_reach
Dylan Jeannin 2026-07-23 15:39:07 +02:00
parent 8e3d784e92
commit 6175e8a03e
3 changed files with 11 additions and 29 deletions

View File

@ -24,6 +24,7 @@ from Model.Status import StudyStatus
from Model.Study import Study from Model.Study import Study
from Model.River import River from Model.River import River
from Model.LateralContribution.LateralContributionTypes import LateralContrib from Model.LateralContribution.LateralContributionTypes import LateralContrib
from Model.HydraulicStructures.Basic.Types import DischargeWeir
class StudyTestCase(unittest.TestCase): class StudyTestCase(unittest.TestCase):

View File

@ -1525,6 +1525,16 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
sl.show() sl.show()
def open_reach_sediment_layers(self): def open_reach_sediment_layers(self):
if self._study is None:
logger.debug(
"No study open for reach sediment layers edition..."
)
return
if not self._study.river.has_current_reach():
self.msg_select_reach()
return
reach = self._study.river.current_reach().reach reach = self._study.river.current_reach().reach
if self.sub_window_exists( if self.sub_window_exists(

View File

@ -1,29 +0,0 @@
# test_MainWindow.py -- Pamhyr
# Copyright (C) 2026 INRAE
#
# 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 3 of the License, or
# (at your option) any later version.
# -*- coding: utf-8 -*-
import unittest
from types import SimpleNamespace
from unittest.mock import patch
from View.MainWindow import ApplicationWindow
class MainWindowTestCase(unittest.TestCase):
@patch("View.MainWindow.subprocess.Popen")
def test_open_sqlite_with_spaces_in_study_path(self, popen):
path = "/tmp/a study with spaces/example study.pamhyr"
window = SimpleNamespace(
_study=SimpleNamespace(filename=path)
)
ApplicationWindow.open_sqlite(window)
popen.assert_called_once_with(["sqlitebrowser", path])