def test_html_object_generate_full_html_no_body(self): html_obj = HTML(True) html_obj.generate_html() self.assertEqual("<!DOCTYPE html>\n <html>\n</html>", html_obj.html_string)
def test_html_object_has_body(self): html_obj = HTML() html_obj.change_has_body() self.assertEqual(True, html_obj.has_body)
def test_html_object_generate_empty_html(self): html_obj = HTML() html_obj.generate_html() self.assertEqual("", html_obj.html_string)
def test_html_object_set_nested_level(self): html_obj = HTML() test_element = html_element() html_obj.add_element(test_element) html_obj.set_element_nested_level(0, 1) self.assertEqual(1, html_obj.get_element(0).nested_level)
def test_html_object_full_html(self): html_obj = HTML() html_obj.change_full_html() self.assertEqual(True, html_obj.is_full_html)
<p>another test</p> <img src="/icon.png" data-image="responsive"/> </div> </body> </html> """ from HTML import HTML from Tag import Tag from TopLevelTag import TopLevelTag if __name__ == "__main__": # If you want to add html code to the file (test.html) replace output=None with output="test.html" # Если Вы хотите добавить html код в файл (test.html) замените output=None на output="test.html" with HTML(output=None) as doc: with TopLevelTag("head") as head: with Tag("title") as title: title.text = "hello" head += title doc += head with TopLevelTag("body") as body: with Tag("h1", klass=("main-text", )) as h1: h1.text = "Test" body += h1 with Tag("div", klass=("container", "container-fluid"), id="lead") as div: with Tag("p") as paragraph:
def test_html_object_get_nested_level_with_element_list(self): html_obj = HTML() test_element = html_element() html_obj.add_element(test_element) html_obj.set_element_nested_level(0, 1) self.assertEqual(1, html_obj.get_top_element_nested_level())
def createReports(sgObj, site, datacenter): www = HTML() mailObj = EMail() dates = DateString() tiers = ['DG1', 'DG2'] alertLimits = {} alertLimits['DG1'] = 85 alertLimits['DG2'] = 98 page = [] csvpage = [] temppage = [] today = dates.today yesterday = dates.yesterday tomorrow = dates.tomorrow pagedirs = ['download', 'history'] subdirs = [today, tomorrow, yesterday] f = Files() for dir in pagedirs: f.dir = '/var/www/html/' + dir f.mkdir() for sub in subdirs: f.dir = '/var/www/html/' + dir + '/' + sub f.mkdir() csvfile = '/www/download/' + today + '/' + site + '_pools.csv' csvfileperm = '/www/download/' + site + '_pools.csv' csvlink = '<a href=/download/' + today + '/' + site + '_pools.csv>CSV</a>' yesterdaylink = '<a href=/history/' + yesterday + '/' + datacenter + site + '_EMC_Summary.html>' + yesterday + '</a>' tomorrowlink = '<a href=/history/' + tomorrow + '/' + datacenter + site + '_EMC_Summary.html>' + tomorrow + '</a>' htmlfile1 = '/www/history/' + today + '/' + datacenter + site + '_EMC_Summary.html' tempfile = '/www/history/' + tomorrow + '/' + datacenter + site + '_EMC_Summary.html' htmlfile2 = '/www/' + datacenter + site + '_EMC_Summary.html' reportDate = str(time.strftime("%c")) page.append(www.start_html('Thin Pool Report for ' + site)) page.append(www.EMC_Header(site, datacenter, '', csvlink)) page.append('<p><br><table align=center border=3>\n') row = ['EMC Storage Summary Report', tomorrowlink, yesterdaylink] page.append(www.th_list(row)) page.append(www.end_table) page.append(www.start_table(3, site)) heading = [ 'Pool', 'Capacity', 'Used', 'Percent Used', 'Free', 'Technology', 'Protection' ] page.append(www.th_list(heading)) total_usable = 0 total_provisioned = 0 total_used = 0 total_free = 0 #csvpage.append('Thin Pool Report for ' + site + '\n\n') csvpage.append(', '.join(heading) + '\n') alertMessage = 'The following pools exceed set thresholds...\n\n' alerts = 0 for tier in tiers: for pool in sgObj.pools.keys(): comparepool = str(pool) comparepool = pool.upper() if tier in comparepool: ########## compression = sgObj.pooldetails[pool]['COMPRESSION'] subscription_limit = sgObj.pooldetails[pool][ 'SUBSCRIPTION_LIMIT'] PRC = sgObj.pooldetails[pool]['PRC'] tech = sgObj.pooldetails[pool]['TECH'] protection = sgObj.pooldetails[pool]['LAYOUT'] ########## usable = float(sgObj.pools[pool]['total_usable_tracks_gb']) used = float(sgObj.pools[pool]['total_used_tracks_gb']) percent_used = sgObj.pools[pool]['percent_full'] free = float(sgObj.pools[pool]['total_free_tracks_gb']) usable = int(round(usable, 0)) used = int(round(used, 0)) free = int(round(free, 0)) total_usable += usable total_used += used total_free += free html = www.tr if int(percent_used) >= alertLimits[tier]: html = www.alerttr alertMessage += "Thin pool " + comparepool + " is " + str( percent_used) + "% used.\n" alertMessage += str(free) + " GB free remain in the pool\n" alertMessage += " The threshold for " + comparepool + ' is set to ' + str( alertLimits[tier]) + '%\n\n' alerts += 1 row = [ pool, str(usable), str(used), str(percent_used), str(free), tech, protection ] csvpage.append(', '.join(row) + '\n') page.append(www.tr_list(row)) total_pct_used = int( (int(total_used) / (float(total_usable) + .0001)) * 100) total_subscription = int( (int(total_provisioned) / (float(total_usable) + .0001)) * 100) row = [ 'Totals', str(total_usable), str(total_used), str(total_pct_used), str(total_free), '___', '___' ] page.append(www.tr_list(row)) page.append(www.end_table) page.append(www.start_table(3, 'SRP Info')) heading = [ 'Name', 'Capacity', 'Used', 'Percent Used', 'Free', 'Provisioned', 'Subscription' ] page.append(www.th_list(heading)) csvpage.append("\n\n\n") csvpage.append(', '.join(heading) + '\n') usable = float(sgObj.SRP_Info['USABLE']) used = float(sgObj.SRP_Info['USED']) free = float(sgObj.SRP_Info['FREE']) subscribed = float(sgObj.SRP_Info['SUBSCRIBED']) usable = int(round(usable, 0)) used = int(round(used, 0)) free = int(round(free, 0)) subscribed = int(round(subscribed, 0)) pct_used = int((int(used) / (float(usable) + .0001)) * 100) subscription = int((int(subscribed) / (float(usable) + .0001)) * 100) row = [ sgObj.SRP_NAME, str(usable), str(used), str(pct_used), str(free), str(subscribed), str(subscription) ] csvpage.append(', '.join(row) + '\n') page.append(www.tr_list(row)) page.append(www.end_table) page.append(www.end_html) f.write_file(htmlfile2, page) f.write_file(htmlfile1, page) f.write_file(csvfile, csvpage) f.write_file(csvfileperm, csvpage) temppage.append(www.start_html()) temppage.append( www.Not_Found_Header('Report not created yet for ' + tomorrow)) temppage.append(www.end_html) f.write_file(tempfile, temppage) if alerts > 0: mailObj.subject = "Storage Capacity Alert, " + site + ', ' + datacenter mailObj.message = alertMessage mailObj.send_mail()
def drawFull(self, month, year): # should be called only once when we draw the calendar for the first time # self.vp = VerticalPanel() self.vp.setSpacing(2) self.vp.addStyleName("calendarbox calendar-module calendar") self.setWidget(self.vp) self.setVisible(False) # mth = int(month) yr = int(year) tp = HorizontalPanel() tp.addStyleName("calendar-top-panel") tp.setSpacing(5) h1 = Hyperlink('<<') h1.addClickListener(getattr(self, 'onPreviousYear')) h2 = Hyperlink('<') h2.addClickListener(getattr(self, 'onPreviousMonth')) h4 = Hyperlink('>') h4.addClickListener(getattr(self, 'onNextMonth')) h5 = Hyperlink('>>') h5.addClickListener(getattr(self, 'onNextYear')) tp.add(h1) tp.add(h2) # titlePanel can be changed, whenever we draw, so keep the reference self.titlePanel = SimplePanel() self.titlePanel.setWidget( HTML("<b>" + self.getMonthsOfYear()[mth - 1] + " " + str(yr) + "</b>")) self.titlePanel.setStyleName("calendar-center") tp.add(self.titlePanel) tp.add(h4) tp.add(h5) tvp = VerticalPanel() tvp.setSpacing(10) tvp.add(tp) self.vp.add(tvp) # done with top panel self.middlePanel = SimplePanel() grid = self.drawGrid(mth, yr) self.middlePanel.setWidget(grid) self.vp.add(self.middlePanel) self.defaultGrid = grid # # some links & handlers # bh1 = Hyperlink(self.yesterday) bh1.addClickListener(getattr(self, 'onYesterday')) bh2 = Hyperlink(self.today) bh2.addClickListener(getattr(self, 'onToday')) bh3 = Hyperlink(self.tomorrow) bh3.addClickListener(getattr(self, 'onTomorrow')) bh4 = Hyperlink(self.cancel) bh4.addClickListener(getattr(self, 'onCancel')) # # add code to test another way of doing the layout # b = HorizontalPanel() b.add(bh1) b.add(bh2) b.add(bh3) b.addStyleName("calendar-shortcuts") self.vp.add(b) b2 = SimplePanel() b2.add(bh4) b2.addStyleName("calendar-cancel") self.vp.add(b2) self.setVisible(True) return
def createReports(sgObj, site, datacenter): www = HTML() mailObj = EMail() swObj = BRCD() swObj.get_connection_map() dates = DateString() page = [] csvpage = [] temppage = [] today = dates.today yesterday = dates.yesterday tomorrow = dates.tomorrow pagedirs = ['download', 'history'] subdirs = [today, tomorrow, yesterday] f = Files() for dir in pagedirs: f.dir = '/var/www/html/' + dir f.mkdir() for sub in subdirs: f.dir = '/var/www/html/' + dir + '/' + sub f.mkdir() csvfile = '/www/download/' + today + '/' + site + '_FA.csv' csvlink = '<a href=/download/' + today + '/' + site + '_FA.csv>CSV</a>' htmlfile = '/www/' + site + '/FA_Ports.html' reportDate = str(time.strftime("%c")) page.append(www.start_html('FA Port Report for ' + site)) page.append(www.EMC_Header(site, datacenter, '', csvlink)) page.append(www.start_table(3, site)) heading = ['FA Port', 'WWN', 'Device Count', 'Switch', 'Portname', 'Port'] page.append(www.th_list(heading)) csvpage.append('FA Port Report for ' + site + '\n\n') csvpage.append(', '.join(heading) + '\n') for FAPORT in sorted(sgObj.FA2WWNmap): port = str(FAPORT) wwn = str(sgObj.FA2WWNmap[FAPORT]) if wwn.lower() in swObj.connectionmap: fields = swObj.connectionmap[wwn.lower()] switchname = fields[0] switchportname = fields[1] switchport = fields[2] else: switchname = 'Not_Connected' switchportname = 'Not_Connected' switchport = 'Not_Connected' if 'Total' in port: color = '#C7C5C6' switchname = '---' switchportname = '---' switchport = '---' else: color = '#DEF2FA' dev_count = str(sgObj.FA_Device_Count[FAPORT]) row = [port, wwn, dev_count, switchname, switchportname, switchport] csvpage.append(', '.join(row) + '\n') page.append(www.tr_list(row, color)) page.append(www.end_table) page.append(www.end_html) f.write_file(htmlfile, page) f.write_file(csvfile, csvpage)
we = self.settings.Engine3D() J.s_script = we.JMol_JVXL(webpath = J.wp,name=self.name) self.s_script = J.s_script return J # # # # # if __name__ == "__main__": DebugLevel = logging.DEBUG logging.basicConfig(level=DebugLevel) from Settings import Settings Top.settings = Settings(FromConfigFile = True) f = Cube(file=sys.argv[1]) f.extractXYZ() f.processFiles() from HTML import HTML WebPage = HTML() WebPage.makeHeader() b1,b2 = f.webData() WebPage.makeLine(b1,b2) WebPage.makeTail() WebPage.write()
def createReports(sgObj, site, datacenter): # # Create directories if they don't exist orange = '#F7EE6F' green = '#69F24E' dir = "/www/" + site + "/SG/" if not os.path.isdir(dir): subprocess.call(["mkdir", dir]) dir = '/www/' + site + '/CSV' if not os.path.isdir(dir): subprocess.call(["mkdir", dir]) # # reportDate = str(time.strftime("%c")) GB = float(sgObj.ProvisionedCapacity) / 1024 ProvisionedGB = "%.2f" % GB info1 = 'Total Porvisioned(GB)=' + str(ProvisionedGB) www = HTML() html_index = '/www/' + site + '/index.html' sgSummCSV = '/www/' + site + '/CSV/' + site + '_SG_Summary.csv' f_index = open(html_index, 'w') f_SummCSV = open(sgSummCSV, 'w') f_SummCSV.write( "Storage Group,FAST Policy,Capacity GB,Masking View,Max IOPS,Max MB/s\n" ) linkpath = "/" + site + "/CSV/" + site + '_SG_Summary.csv' sgSummLink = '<a href=' + linkpath + '>Summary CSV</a>\n' f_index.write(www.start_html('SG Summary')) f_index.write(www.EMC_Header(site, datacenter, info1, sgSummLink)) f_index.write(www.start_table()) f_index.write(www.end_table) # Dictionary: key = policy name and value is a list of html formatted lines, one line per SG with that policy. fpTables = {} # Dictionary of policies. Used to iterate over the above var. policies = {} demandpage = '/www/' + site + '/fast_demand.html' f = Files() f.read_file(demandpage) dp = f.readfile[:] for sg in sgObj.SGs: # # found = False demandtable = '' for txt in dp: if 'SG_Name' in txt: hr = txt if str(sg) in txt: found = True rowdata = txt if found: demandtable = '<br><p><table border=3 align=center><caption>FAST-VP Demand</caption>\n' demandtable += hr demandtable += '\n' demandtable += rowdata demandtable += '\n' demandtable += '\n</table>' color = '' if sg in sgObj.Associations: fp = sgObj.Associations[sg] else: fp = 'NO_FAST_POLICY' color = orange # policies[fp] = 1 if not fp in fpTables: fpTables[fp] = [] # link = "/" + site + "/SG/" + sg + ".html" sgGB = float(sgObj.SG2Capacity[sg]) / 1024 sgProvisionedGB = "%.2f" % sgGB MVs = sgObj.SGinMV[sg] IOPS_LIMIT = str(sgObj.SG_IOPS_Limit[sg]) MB_LIMIT = str(sgObj.SG_MB_Limit[sg]) if MVs.upper() == 'NO': color = orange rowlist = [ "<a href=" + link + '>' + sg + "</a>", fp, str(sgProvisionedGB), MVs, IOPS_LIMIT, MB_LIMIT ] SGhtml = www.tr_list(rowlist, color) fpTables[fp].append(SGhtml) f_SummCSV.write(sg + ',' + fp + ',' + str(sgProvisionedGB) + ',' + MVs + ',' + IOPS_LIMIT + ',' + MB_LIMIT + "\n") # go ahead and write out the sg detail HTML page. sgfile = "/www/" + site + "/SG/" + sg + ".html" sgCSV = "/www/" + site + "/CSV/" + site + '_' + sg + ".csv" linkpath = "/" + site + "/CSV/" + site + '_' + sg + ".csv" link1 = '<a href=' + linkpath + '>SG CSV</a>\n' f_sg = open(sgfile, 'w') f_sgCSV = open(sgCSV, 'w') f_sgCSV.write('Storage Group Report for ' + sg + '\n\n\n') f_sg.write(www.start_html('SG Detail')) f_sg.write(www.EMC_Header(site, datacenter, '', link1)) html = "<p><H3><center>Detailed Storage Report for " + sg + " SSC_VMAX40K_1794</center></H3>\n" f_sg.write(html) f_sg.write(www.start_table()) f_sg.write(www.tr + www.th + "Storage Group<th>FAST<TH>Capacity GB</tr>\n") html = www.tr + www.td + sg + www.td + fp + www.td + str( sgProvisionedGB) + "\n" f_sg.write(html) f_sg.write(www.end_table) f_sg.write(demandtable) f_sg.write(www.start_table(3, 'Device List')) f_sg.write(www.tr + www.th + "Device<th>Capacity GB</tr>\n") f_sgCSV.write("Volume,Capacity GB\n") for device in sgObj.SGs[sg]: devGB = float(sgObj.SGs[sg][device]) / 1024 dev_formatted = "%.2f" % devGB html = www.tr + www.td + device + www.td + str( dev_formatted) + "\n" f_sg.write(html) f_sgCSV.write(device + ',' + str(dev_formatted) + '\n') f_sg.write(www.end_table) f_sg.write(www.end_html) f_sg.close() f_sgCSV.close() for fp in policies: f_index.write( www.start_table( 3, 'Groups with FAST VP ' + fp + ' Policy Association')) f_index.write( "<tr><th>Storage Group<th>FAST<TH>Capacity GB<TH>Masking View<TH>IOPS Limit<TH>MB/s Limit</tr>\n" ) for line in fpTables[fp]: f_index.write(line) f_index.write(www.end_table) f_index.write(www.end_html) f_index.close() f_SummCSV.close()
def createReports(mvObj, site, datacenter): reportDate = str(time.strftime("%c")) GB = float(mvObj.mvCapTotal) / 1024 ProvisionedGB = "%.2f" % GB info1 = 'Total Porvisioned=' + str(ProvisionedGB) www = HTML() f = Files() html_index = '/www/' + site + '/views.html' viewsCSV = '/www/' + site + '/CSV/' + site + '_views.csv' htmlpage = [] csvpage = [] htmlpage.append(www.start_html('MV Summary')) linkpath = "/" + site + "/CSV/" + site + '_views.csv' mvSummLink = '<a href=' + linkpath + '>Views CSV</a>\n' htmlpage.append(www.EMC_Header(site, datacenter, info1, mvSummLink)) csvpage.append('MV Report for ' + site + '\n\n') # Write out a table for Masking Views csvpage.append("View Name,SG,IG,PG,Capacity\n") for pg in mvObj.portgroups: htmlpage.append(www.start_table(3, 'Masking Views on PG, ' + pg)) htmlpage.append( "<tr><th>View Name<th>SG<th>IG<th>PG<th>Capacity</tr>\n") for mv in mvObj.portgroups[pg]: viewname = mv['MV'] ig = mv['IG'] pg = mv['PG'] sg = mv['SG'] gb = float(mv['MB']) / 1024 fmtgb = "%.2f" % gb gb = str(fmtgb) sglink = "<a href=/" + site + "/SG/" + sg + ".html>" + sg + "</a>\n" iglink = "<a href=/" + site + "/IG/" + ig + ".html>" + ig + "</a>\n" row = [viewname, sglink, iglink, pg, gb] htmlpage.append(www.tr_list(row)) csrow = [viewname, sg, ig, pg, gb] csvpage.append(', '.join(csrow) + '\n') htmlpage.append(www.end_table) htmlpage.append(www.end_html) f.write_file(html_index, htmlpage) f.write_file(viewsCSV, csvpage) dir = "/www/" + site + "/IG/" if not os.path.isdir(dir): subprocess.call(["mkdir", dir]) for IG in mvObj.HostInitiatorGroups: igPage = '/www/' + site + '/IG/' + IG + '.html' f_ig = open(igPage, 'w') f_ig.write(www.start_html('Initiator Group ' + IG)) f_ig.write(www.EMC_Header(site, datacenter)) # Write out a table for Masking Views f_ig.write(www.start_table(3, 'Initiator Group ' + IG)) f_ig.write("<tr><th>HBA Initiators</tr>\n") for wwpn in mvObj.HostInitiatorGroups[IG]: f_ig.write("<tr><th>" + wwpn + "</tr>\n") f_ig.write(www.end_table) f_ig.write(www.end_html) f_ig.close() for IG in mvObj.ClusterInitiatorGroups: igPage = '/www/' + site + '/IG/' + IG + '.html' f_ig = open(igPage, 'w') f_ig.write(www.start_html('Cluster Initiator Group ' + IG)) f_ig.write(www.EMC_Header(site, datacenter)) # Write out a table for Masking Views f_ig.write(www.start_table(3, 'Initiator Group ' + IG)) f_ig.write("<tr><th>Cluster Nodes</tr>\n") for wwpn in mvObj.ClusterInitiatorGroups[IG]: link = '<a href=/' + site + '/IG/' + wwpn + '.html>' + wwpn + '</a>\n' f_ig.write("<tr><th>" + link + "</tr>\n") f_ig.write(www.end_table) f_ig.write(www.end_html) f_ig.close() # Database section # First, grab a list of known WWPN logins vmaxdb = mysql.connect(host="chatst3utsan01", user="******", passwd="emc", db="vmax") cur = vmaxdb.cursor() query = "SELECT wwpn,ig FROM initiatorgroups" results = cur.execute(query) rows = cur.fetchall() # Now create a simple list of logins. We use this to check whether we've seen a login before. # If we know this login, we just update the time seen and array/port. knownwwpns = [] p = re.compile('\w+') for row in rows: wwpn = row[0] ig = row[1] key = ''.join(p.findall(wwpn + ig)).lower() knownwwpns.append(key) # Now get the current date and time. today = datetime.date.today() formatteddate = today.strftime('%Y-%m-%d') now = datetime.datetime.now().time() formattedtime = now.strftime('%H:%M:%S') for IG in mvObj.HostInitiatorGroups: for wwpn in mvObj.HostInitiatorGroups[IG]: wwpn = wwpn.lower() ig = str(IG) ig = ig.lower() insertquery = 'insert into initiatorgroups(wwpn,array_name,ig,record_date,record_time) ' insertquery += " values('" + wwpn + "','" + site + "','" insertquery += ig + "',NOW(),NOW() );" updatequery = 'update initiatorgroups SET array_name = %s, ig = %s, record_date = %s, record_time = %s ' updatequery += ' WHERE wwpn = %s AND ig = %s' wwpn_ig = ''.join(p.findall(wwpn + ig)) if wwpn_ig in knownwwpns: results = cur.execute( updatequery, (site, ig, formatteddate, formattedtime, wwpn, ig)) else: results = cur.execute(insertquery)
def createReports(sgObj, site, datacenter): www = HTML() mailObj = EMail() dates = DateString() page = [] csvpage = [] temppage = [] today = dates.today yesterday = dates.yesterday tomorrow = dates.tomorrow pagedirs = ['download', 'history'] subdirs = [today, tomorrow, yesterday] f = Files() for dir in pagedirs: f.dir = '/var/www/html/' + dir f.mkdir() for sub in subdirs: f.dir = '/var/www/html/' + dir + '/' + sub f.mkdir() csvfile = '/www/download/' + today + '/' + site + '_failed_disks.csv' csvfileperm = '/www/download/' + site + '_failed_disks.csv' csvlink = '<a href=/download/' + today + '/' + site + '_failed_disks.csv>CSV</a>' yesterdaylink = '<a href=/history/' + yesterday + '/' + datacenter + '_Failed_disks.html>' + yesterday + '</a>' tomorrowlink = '<a href=/history/' + tomorrow + '/' + datacenter + '_Failed_disks.html>' + tomorrow + '</a>' htmlfile1 = '/www/history/' + today + '/' + datacenter + '_Failed_disks.html' tempfile = '/www/history/' + tomorrow + '/' + datacenter + '_Failed_disks.html' htmlfile2 = '/www/' + datacenter + site + '_Failed_disks.html' logfile = '/www/' + site + '_Failed_disks.log' log = [] reportDate = str(time.strftime("%c")) page.append(www.start_html('Failed Disk Report for ' + site)) page.append(www.EMC_Header(site, datacenter, '', csvlink)) page.append('<p><br><table align=center border=3>\n') row = ['Failed Disk Report', tomorrowlink, yesterdaylink] page.append(www.th_list(row)) page.append(www.end_table) page.append(www.start_table(3, site)) heading = [ 'Disk_ID', 'DA_Port', 'Spindle_ID', 'Tech', 'Speed', 'Vendor', 'Size', 'Failed' ] page.append(www.th_list(heading)) csvpage.append(', '.join(heading) + '\n') alertMessage = 'Disk Error...\n\n' alertMessage += ', '.join(heading) + '\n\n' alerts = 0 for disk in sgObj.FailedDisks: alerts += 1 info = sgObj.FailedDisks[disk].split() row = [ info[0], info[1], info[2], info[3], info[4], info[5], info[6], info[7] ] alertMessage += ', '.join(row) + '\n\n' csvpage.append(', '.join(row) + '\n') page.append(www.tr_list(row)) page.append(www.end_table) page.append(www.end_html) f.write_file(htmlfile2, page) f.write_file(htmlfile1, page) f.write_file(csvfile, csvpage) f.write_file(csvfileperm, csvpage) temppage.append(www.start_html()) temppage.append( www.Not_Found_Header('Report not created yet for ' + tomorrow)) temppage.append(www.end_html) f.write_file(tempfile, temppage) if alerts > 0: mailObj.subject = "WARNING: DISK ERROR - VMAX Failed Disk Alert " + site + ', ' + datacenter mailObj.message = alertMessage mailObj.send_mail() if len(sgObj.New_Failures.keys()) > 0: reportDate = str(time.strftime("%x - %X")) for failed_disk in sgObj.New_Failures.keys(): log.append(reportDate + " :" + mailObj.subject + " " + failed_disk + "\n") f.write_file(logfile, log)
def test_html_object_generate_full_html_with_body_and_head(self): html_obj = HTML(True, True, True) html_obj.generate_html() self.assertEqual( "<!DOCTYPE html>\n <html>\n<head>\n</head>\n<body>\n</body>\n</html>", html_obj.html_string)
def test_html_object_get_nested_level(self): html_obj = HTML() self.assertEqual(0, html_obj.get_top_element_nested_level())
def test_html_object_generate_not_full_html_with_elements(self): html_obj = HTML(False, False, False) test_element = html_element(False, "a", "Anchor") html_obj.add_element(test_element) html_obj.generate_html() self.assertEqual("<a>Anchor</a>\n", html_obj.html_string)
__author__ = "Pradeep" __version__ = 'develop' from HTML import HTML html = HTML()