class TestSubMenu(unittest.TestCase): def setUp(self): self.page = Page('test page') self.sub_menu = SubMenu('test submenu') def tearDown(self): self.page = Page('test page') self.sub_menu = SubMenu('test submenu') def test_add(self): self.sub_menu.add_page(self.page) self.assertIn(self.page, self.sub_menu) def test_add_non_page(self): with self.assertRaises(ValueError): self.sub_menu.add_page("oops") def test_location_empty(self): if len(self.sub_menu) == 0: self.assertFalse(self.sub_menu.location) def test_location(self): self.sub_menu.add_page(self.page) if len(self.sub_menu) == 1: self.assertEqual(self.sub_menu.location, self.page.location) def test_current_page_empty(self): if len(self.sub_menu) == 0: self.assertFalse(self.sub_menu.current_page) def test_current_page_first_elem(self): self.page.current_page = True self.sub_menu.add_page(self.page) self.assertTrue(self.sub_menu.current_page)
To prevent build failing because of backslashes, use a rawstring format by adding `r` in front of the string. You can read more about the input format [here](http://docs.mathjax.org/en/latest/tex.html#). Example: `formula = Markdown(r'$$x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b}.$$')` Renders out to this: $$x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b}.$$ """) ex3.add_content(Markdown(some_content)) submenu1 = SubMenu('Menu 1') submenu2 = SubMenu('Menu 2') submenu3 = SubMenu('Menu 3') submenu1.add_page(ex1) submenu2.add_page(ex2) submenu3.add_page(ex3) web.add(submenu1) web.add(submenu2) web.add(submenu3) web.write_html("./webviz_example", overwrite=True, display=False)
def add_webviz_tornadoplots(web, configfile): """ Generating a set of TornadoPlots for webviz on webviz Pages Args: web: webportal where submenu should be added configfile(str): yaml configuration file for tornado calculations Returns: object: Set of webviz.Pages with tornado plots Example: >>> from fmu.tools.sensitivities import add_webviz_tornadoplots >>> from webviz import Webviz >>> html_foldername = './webportal_example' >>> title = 'Snorreberg' >>> web = Webviz(title) >>> configfile ='../input/config/config_filename.yaml' >>> add_webviz_tornadoplots(web, configfile) >>> web.write_html(html_foldername, overwrite=True, display=True) """ if not HAS_WEBVIZ_STATIC: print("ERROR: Cannot make Tornado plots without Webviz static") return None print(WEBVIZ_STATIC_DEPRECIATION_WARNING) yamlfile = configfile # input inputfile = yconfig(yamlfile) config = yconfig_set_defaults(inputfile) # assign parameters from config designpath = config["design"]["designpath"] designname = config["design"]["designname"] designsheet = config["design"]["designsheet"] response = config["calculations"]["responses"] selections = OrderedDict(config["calculations"]["selections"]) selectors = selections.keys() reference = str(config["tornadooptions"]["reference"]) scale = config["tornadooptions"]["scale"] cutbyref = config["tornadooptions"]["cutbyref"] menuprefix = config["calculations"]["menuprefix"] # Option: results from single realisation csv files needs gathering first if config["results"]["gatherresults"]: results = gatherresults(config) # Default: concatenated result file already exists as csv if not config["results"]["gatherresults"]: resultpath = config["results"]["resultpath"] resultname = config["results"]["resultname"] resultfile = os.path.join(resultpath, resultname) results = pd.read_csv(resultfile) # Option: renaming of columns in resultfile, e.g. from CSV_EXPORT1 if config["results"]["renamecolumns"]: results.rename(columns=config["results"]["renaming"], inplace=True) # Read design matrix and find realisation numbers for each sensitivity designname = os.path.join(designpath, designname) designtable = summarize_design(designname, designsheet) print("Summary of design matrix:") with pd.option_context("expand_frame_repr", False): print(designtable) # Find all combinations of selections to generate plots for comb = find_combinations(selections) # Grouping calculation of tornado plots per response. # One list of plots under each response for res in response: smn = SubMenu(menuprefix + " " + res) for cmb in comb: pagetitle = res for ksel in range(len(selections)): pagetitle += " , " + str(selections.keys()[ksel]) pagetitle += " = " + str(cmb[ksel]).strip("[]") pge = Page(pagetitle) (tornadotable, ref_value) = calc_tornadoinput( designtable, results, res, selectors, cmb, reference, scale, cutbyref ) print("For response and selections: ") print(pagetitle) print("reference average: ", ref_value) print( "Calculation settings: ", scale, ", Cut by reference: ", cutbyref, ", Reference: ", reference, ) with pd.option_context("expand_frame_repr", False): print(tornadotable) print("\n") # While waiting for webviz issues 84 and 85 to be solved # xlabel = make_xlabel(ref_value, scale, reference) # tornado_plot = \ # tornado_plot = TornadoPlot(tornadotable, xlabel, pagetitle) tornado_plot = TornadoPlot(tornadotable) pge.add_content(tornado_plot) smn.add_page(pge) web.add(smn)
class TestWebviz(unittest.TestCase): def setUp(self): self.page = Page('test page') self.submenu = SubMenu('test page') self.webviz = Webviz('test portal', theme='minimal') def test_non_theme(self): with self.assertRaises(ValueError): Webviz(title='bomb', theme=3.14) @patch('webviz._webviz.webbrowser') def test_display(self, webbrowser_mock): folder = tempfile.mkdtemp() self.webviz.write_html(folder, True, True) shutil.rmtree(folder) webbrowser_mock.open_new_tab.assert_called_once() def test_add_non_page(self): with self.assertRaises(ValueError): self.webviz.add('not a page or SubMenu') def test_add_page(self): self.webviz.add(self.page) self.assertIn(self.page, self.webviz.menu) def test_add_submenu(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) self.assertIn(self.submenu, self.webviz.menu) self.assertIn(self.page, self.webviz.pages) def test_render(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) shutil.rmtree(folder) def test_overwrite(self): self.submenu.add_page(self.page) self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) with self.assertRaises(ValueError): self.webviz.write_html(folder, overwrite=False) self.webviz.write_html(folder, overwrite=True) shutil.rmtree(folder) def test_write_banner(self): self.submenu.add_page(self.page) (_, testbanner) = tempfile.mkstemp(suffix='.jpg') self.webviz = Webviz('test portal', banner_image=testbanner, theme='minimal') self.webviz.add(self.submenu) folder = tempfile.mkdtemp() self.webviz.write_html(folder, overwrite=True) absolute_banner_filename = os.path.join(folder, self.webviz.banner_filename) self.assertTrue(os.path.isfile(absolute_banner_filename)) shutil.rmtree(folder)
def setUp(self): self.page = Page('test page') self.submenu = SubMenu('test page') self.webviz = Webviz('test portal', theme='minimal')
from webviz import Webviz, Page, SubMenu web = Webviz('Title', theme='default') page = Page('Page') menu = SubMenu('Menu') menu.add_page(page) web.add(menu) web.write_html("./webviz_example", overwrite=True, display=False)
def setUp(self): self.page = Page('test page') self.sub_menu = SubMenu('test submenu')
def tearDown(self): self.page = Page('test page') self.sub_menu = SubMenu('test submenu')