def test_show_tile(self): tiles = [sw.Tile(f'id_{i}', f'title_{i}') for i in range(5)] drawer_items = [ sw.DrawerItem(f'title {i}', card=f'id_{i}') for i in range(5) ] appBar = sw.AppBar() footer = sw.Footer() title = 'main_title' id_ = 'main_id' main_tile = sw.Tile(id_, title) main_drawer = sw.DrawerItem(title, card=id_) tiles.append(main_tile) drawer_items.append(main_drawer) app = sw.App(tiles, appBar, footer, sw.NavDrawer(drawer_items)) res = app.show_tile(id_) self.assertEqual(res, app) for tile in tiles: if tile == main_tile: self.assertTrue(tile.viz) else: self.assertFalse(tile.viz) for di in drawer_items: if di._metadata['card_id'] == id_: self.assertTrue(di.input_value) else: self.assertFalse(di.input_value)
def test_init_cards(self): title = 'toto' id_ = 'toto_id' icon = 'mdi-folder' #default init drawerItem = sw.DrawerItem(title) self.assertIsInstance(drawerItem, v.ListItem) self.assertIsInstance(drawerItem.children[0].children[0], v.Icon) self.assertEqual(drawerItem.children[0].children[0].children[0], 'mdi-folder-outline') self.assertIsInstance(drawerItem.children[1].children[0], v.ListItemTitle) self.assertEqual(drawerItem.children[1].children[0].children[0], title) #exhaustive drawerItem = sw.DrawerItem(title, icon, id_) self.assertEqual(drawerItem.children[0].children[0].children[0], icon) self.assertEqual(drawerItem.children[1].children[0].children[0], title) self.assertEqual(drawerItem._metadata['card_id'], id_) #too much args drawerItem = sw.DrawerItem(title, icon, id_, '#') self.assertEqual(drawerItem.href, '#') self.assertEqual(drawerItem.target, '_blank') self.assertEqual(drawerItem._metadata, None) return
def test_init(self): #default init app = sw.App() self.assertIsInstance(app, sw.App) self.assertEqual(len(app.children), 3) self.assertIsInstance(app.children[0], v.Overlay) self.assertIsInstance(app.children[1], sw.AppBar) self.assertIsInstance(app.children[2], v.Content) #exhaustive navDrawer = sw.NavDrawer( [sw.DrawerItem(f'title {i}') for i in range(5)]) appBar = sw.AppBar() tiles = [] for i in range(5): tiles.append(sw.Tile(f'id_{i}', f'title_{i}')) footer = sw.Footer() app = sw.App(tiles, appBar, footer, navDrawer) self.assertIsInstance(app, sw.App) self.assertEqual(len(app.children), 5) self.assertIsInstance(app.children[0], v.Overlay) self.assertIsInstance(app.children[1], sw.AppBar) self.assertIsInstance(app.children[2], sw.NavDrawer) self.assertIsInstance(app.children[3], v.Content) self.assertIsInstance(app.children[4], sw.Footer) return
def test_display_tile(self): # build fake tiles tiles = [] for i in range(5): title = 'name_{}'.format(i) id_ = 'id_{}'.format(i) tiles.append(sw.Tile(id_, title)) # create the real tile title = 'toto' id_ = 'toto_id' real_tile = sw.Tile(id_, title) tiles.append(real_tile) # create the drawer item and bind it to the tiles drawer_item = sw.DrawerItem(title, card=id_).display_tile(tiles) # fake the click drawer_item._on_click(None, None, None, tiles) # check the viz parameter of each tiles for tile in tiles: if tile.get_title() == title: self.assertTrue(tile.viz) else: self.assertFalse(tile.viz) return
def test_init(self): items = [sw.DrawerItem('title {}'.format(i)) for i in range(5)] #default init widget = sw.NavDrawer(items) self.assertIsInstance(widget, sw.NavDrawer) self.assertEqual(widget.children[0].children, items) #exhaustive code = "#code" wiki = "#wiki" issue = "#issue" #test all composition of links widget = sw.NavDrawer(items, code) self.assertEqual(len(widget.children[2].children), 1) self.assertEqual(widget.children[2].children[0].href, code) widget = sw.NavDrawer(items, None, wiki) self.assertEqual(len(widget.children[2].children), 1) self.assertEqual(widget.children[2].children[0].href, wiki) widget = sw.NavDrawer(items, None, None, issue) self.assertEqual(len(widget.children[2].children), 1) self.assertEqual(widget.children[2].children[0].href, issue) widget = sw.NavDrawer(items, code, wiki) self.assertEqual(len(widget.children[2].children), 2) self.assertEqual(widget.children[2].children[0].href, code) self.assertEqual(widget.children[2].children[1].href, wiki) widget = sw.NavDrawer(items, None, wiki, issue) self.assertEqual(len(widget.children[2].children), 2) self.assertEqual(widget.children[2].children[0].href, wiki) self.assertEqual(widget.children[2].children[1].href, issue) widget = sw.NavDrawer(items, code, None, issue) self.assertEqual(len(widget.children[2].children), 2) self.assertEqual(widget.children[2].children[0].href, code) self.assertEqual(widget.children[2].children[1].href, issue) widget = sw.NavDrawer(items, code, wiki, issue) self.assertEqual(len(widget.children[2].children), 3) self.assertEqual(widget.children[2].children[0].href, code) self.assertEqual(widget.children[2].children[1].href, wiki) self.assertEqual(widget.children[2].children[2].href, issue) return
def test_on_item_click(self): # create items items = [sw.DrawerItem('title {}'.format(i)) for i in range(5)] nav_drawer = sw.NavDrawer(items) # activate the first one items[0].input_value = True for i in range(5): if i == 0: self.assertTrue(items[i].input_value) else: self.assertFalse(items[i].input_value) # activate the second one items[1].input_value = True for i in range(5): if i == 1: self.assertTrue(items[i].input_value) else: self.assertFalse(items[i].input_value)