예제 #1
0
 def test_base_settings(self, tmp_path, image, qtbot):
     settings = base_settings.BaseSettings(tmp_path)
     assert settings.theme_name == "light"
     with qtbot.waitSignal(settings.points_changed):
         settings.points = (10, 10)
     assert settings.points == ((10, 10))
     settings.image = image
     assert settings.points is None
     settings.theme_name = "dark"
     assert settings.theme_name == "dark"
예제 #2
0
    def test_base_settings_load_dump(self, tmp_path, qtbot):
        settings = base_settings.BaseSettings(tmp_path)
        settings.set("aaa", 10)
        settings.set_in_profile("bbbb", 10)
        settings.dump()
        settings.dump(tmp_path / "subfolder")

        settings2 = base_settings.BaseSettings(tmp_path)
        settings2.load()
        assert settings2.get("aaa", 15) == 10
        assert settings2.get_from_profile("bbbb", 15) == 10

        settings3 = base_settings.BaseSettings(tmp_path / "aaa")
        settings3.load(tmp_path / "subfolder")
        assert settings3.get("aaa", 15) == 10
        assert settings3.get_from_profile("bbbb", 15) == 10

        settings4 = base_settings.BaseSettings(tmp_path / "bbb")
        settings4.load(tmp_path / "subfolder22")
        assert settings4.get("aaa", 15) == 15
        assert settings4.get_from_profile("bbbb", 15) == 15
예제 #3
0
 def test_base_settings_path_history(self, tmp_path, qtbot, monkeypatch):
     settings = base_settings.BaseSettings(tmp_path)
     monkeypatch.setattr(settings, "save_locations_keys",
                         ["test1", "test2"])
     for i in range(50):
         settings.add_path_history(str(i))
     assert len(settings.get_path_history()) == 11
     assert len(settings.get_last_files()) == 0
     file_list = [[[str(tmp_path / (str(i) + ".txt"))], "aaa"]
                  for i in range(50)]
     for paths, method in file_list:
         settings.add_last_files(paths, method)
     assert len(settings.get_last_files()) == 10
     assert settings.get_last_files() == file_list[-10:][::-1]
예제 #4
0
 def test_base_settings_image(self, tmp_path, qtbot, image):
     settings = base_settings.BaseSettings(tmp_path)
     settings.image = image
     mask = np.ones((10, 10), dtype=np.uint8)
     assert image.mask is None
     assert settings.mask is None
     with qtbot.assertNotEmitted(
             settings.mask_changed), pytest.raises(ValueError):
         settings.mask = mask[:2]
     with qtbot.waitSignal(settings.mask_changed):
         settings.mask = mask
     assert image.mask is not None
     assert settings.mask is not None
     assert settings.verify_image(image)
예제 #5
0
    def test_base_settings_history(self, tmp_path, qtbot, monkeypatch):
        settings = base_settings.BaseSettings(tmp_path)
        assert settings.history_size() == 0
        assert settings.history_redo_size() == 0
        hist_elem = HistoryElement({"a": 1}, None, MaskProperty.simple_mask(),
                                   BytesIO())
        hist_elem2 = HistoryElement({"a": 2}, None, MaskProperty.simple_mask(),
                                    BytesIO())
        hist_elem3 = HistoryElement({"a": 3}, None, MaskProperty.simple_mask(),
                                    BytesIO())
        settings.add_history_element(hist_elem)
        assert settings.history_size() == 1
        assert settings.history_redo_size() == 0
        settings.add_history_element(hist_elem2)
        assert settings.history_size() == 2
        assert settings.history_redo_size() == 0
        assert settings.history_pop().roi_extraction_parameters["a"] == 2
        assert settings.history_current_element(
        ).roi_extraction_parameters["a"] == 1
        assert settings.history_next_element(
        ).roi_extraction_parameters["a"] == 2
        assert settings.history_redo_size() == 1
        assert settings.history_size() == 1
        assert len(settings.get_history()) == 1
        assert settings.get_history()[-1].roi_extraction_parameters["a"] == 1
        settings.add_history_element(hist_elem3)
        settings.history_pop()
        settings.history_redo_clean()
        assert settings.history_redo_size() == 0
        settings.history_pop()
        assert settings.history_pop() is None
        assert settings.history_size() == 0
        assert settings.history_redo_size() == 1

        settings.set_history([hist_elem, hist_elem2])
        assert settings.get_history()[-1].roi_extraction_parameters["a"] == 2
        assert settings.history_size() == 2
        assert settings.history_redo_size() == 0
        settings.history_pop()
        monkeypatch.setattr(settings, "cmp_history_element", lambda x, y: True)
        settings.add_history_element(hist_elem3)
예제 #6
0
    def test_base_settings_partial_load_dump(self, tmp_path, qtbot):
        settings = base_settings.BaseSettings(tmp_path)
        settings.set("aaa.bb.bb", 10)
        settings.set("aaa.bb.cc", 11)
        settings.set("aaa.bb.dd", 12)
        settings.set("aaa.bb.ee.ff", 14)
        settings.set("aaa.bb.ee.gg", 15)
        settings.dump_part(tmp_path / "data.json", "aaa.bb")
        settings.dump_part(tmp_path / "data2.json",
                           "aaa.bb",
                           names=["cc", "dd"])

        res = base_settings.BaseSettings.load_part(tmp_path / "data.json")
        assert res[0] == {
            "bb": 10,
            "cc": 11,
            "dd": 12,
            "ee": {
                "ff": 14,
                "gg": 15
            }
        }
        res = base_settings.BaseSettings.load_part(tmp_path / "data2.json")
        assert res[0] == {"cc": 11, "dd": 12}