コード例 #1
0
 def test_clean_tabs_tab_cycle(self):
     with self.assertRaises(TabCycleError):
         self._call_clean_value(
             ParamSchema.Multitab(),
             ["tab-1"],
             tab_results={Tab("tab-1", "Tab 1"): None},
         )
コード例 #2
0
 def test_clean_tabs_tab_unreachable(self):
     with self.assertRaises(TabOutputUnreachableError):
         self._call_clean_value(
             ParamSchema.Multitab(),
             ["tab-1"],
             tab_results={
                 Tab("tab-1", "Tab 1"): StepResult(Path("tab-1.arrow"), [])
             },
         )
コード例 #3
0
 def test_clean_tabs_happy_path(self):
     self.assertEqual(
         self._call_prep_params(
             ParamSchema.Dict({"x": ParamSchema.Multitab()}),
             {"x": ["tab-2", "tab-3"]},
             tab_results={
                 Tab("tab-2", "Tab 2"):
                 StepResult(Path("tab-2.arrow"), [NUMBER("B")]),
                 Tab("tab-3", "Tab 3"):
                 StepResult(Path("tab-3.arrow"), [NUMBER("C")]),
             },
         ),
         PrepParamsResult(
             {"x": ["tab-2", "tab-3"]},
             {
                 "tab-2": TabOutput("Tab 2", "tab-2.arrow"),
                 "tab-3": TabOutput("Tab 3", "tab-3.arrow"),
             },
             uploaded_files={},
         ),
     )
コード例 #4
0
 def test_clean_tabs_preserve_ordering(self):
     # "x" gives wrongly-ordered tabs; renderprep should reorder them.
     result = self._call_prep_params(
         ParamSchema.Dict({"x": ParamSchema.Multitab()}),
         {"x": ["tab-2", "tab-3"]},
         tab_results={
             Tab("tab-3", "Tab 3"):
             StepResult(Path("tab-3.arrow"), [NUMBER("C")]),
             Tab("tab-2", "Tab 2"):
             StepResult(Path("tab-2.arrow"), [NUMBER("B")]),
         },
     )
     self.assertEqual(
         result,
         PrepParamsResult(
             {"x": ["tab-3", "tab-2"]},
             {
                 "tab-3": TabOutput("Tab 3", "tab-3.arrow"),
                 "tab-2": TabOutput("Tab 2", "tab-2.arrow"),
             },
             uploaded_files={},
         ),
     )
コード例 #5
0
 def test_clean_multitab_unsupported(self):
     with self.assertRaisesRegex(RuntimeError,
                                 "Unsupported: fetch multitab"):
         clean_value(ParamSchema.Multitab(), "", None)
コード例 #6
0
 def test_validate_empty_tab_is_error(self):
     with pytest.raises(ValueError, match="Empty tab not allowed"):
         S.Multitab().validate([""])
コード例 #7
0
 def test_validate_str_is_error(self):
     with pytest.raises(ValueError):
         S.Multitab().validate("X,Y")
コード例 #8
0
 def test_validate_list_of_non_str_is_error(self):
     with pytest.raises(ValueError):
         S.Multitab().validate([1, 2])
コード例 #9
0
 def test_validate_list_of_str_ok(self):
     S.Multitab().validate(["tab-1", "tab-2"]),
コード例 #10
0
 def test_default(self):
     assert S.Multitab().default == []
コード例 #11
0
 def test_clean_tabs_nix_missing_tab(self):
     self.assertEqual(
         self._call_clean_value(ParamSchema.Multitab(), ["tab-missing"]),
         [])