Best Python code snippet using playwright-python
ddr_models.py
Source:ddr_models.py
...3from sqlalchemy.orm import relationship, backref4from database import Base5from models.location import OSMLocation67def get_attribute(root, key, repeatable = False) :8 if isinstance(key, str) :9 return root.get(key, default=None)10 elif isclass(key) :11 if not repeatable :12 return key(root.find(key.__name__)) if root.find(key.__name__) != None else None13 else :14 return [key(xml_tmp) for xml_tmp in root.findall(key.__name__) if xml_tmp != None]151617"""18Class represents document19get XML in constructor20read attributes from XML or create "subclass" (vnorene objekty)21"""22class DOC(Base) :23 """zapouzdÅuje celý dokument pro výmÄnu informacÃ"""24 __tablename__ = 'DOC'25 obj_id = Column(Integer, primary_key=True)2627 value = Column(Text)2829 file_name = Column(Text)3031 version = Column(Text)32 id = Column(Text)33 country = Column(Text)34 DataSet = Column(Text)3536 INF_id = Column(Integer, ForeignKey('INF.obj_id'))37 INF = relationship("INF", backref=backref('DOC', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)3839 MJD_id = Column(Integer, ForeignKey('MJD.obj_id'))40 MJD = relationship("MJD", backref=backref('DOC', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)4142 def __init__(self, root_xml=None, file_name=None):43 if root_xml == None :44 return4546 self.value = root_xml.text4748 self.file_name = file_name4950 self.version = get_attribute(root_xml, "version")51 self.id = get_attribute(root_xml, "id")52 self.country = get_attribute(root_xml, "country")53 self.DataSet = get_attribute(root_xml, "DataSet")5455 self.INF = get_attribute(root_xml, INF)56 self.MJD = get_attribute(root_xml, MJD)5758 def __repr__(self):59 return '<DOC %r>' % (self.id)6061class INF(Base) :62 """Informace o subjektech, které si vymÄÅujà XML dokument"""63 __tablename__ = 'INF'64 obj_id = Column(Integer, primary_key=True)6566 value = Column(Text)6768 sender = Column(Text)69 receiver = Column(Text)70 transmission = Column(Text)7172 DAT_id = Column(Integer, ForeignKey('DAT.obj_id'))73 DAT = relationship("DAT", backref=backref('INF', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)7475 def __init__(self, root_xml):76 if root_xml == None :77 return7879 self.value = root_xml.text8081 self.sender = get_attribute(root_xml, "sender")82 self.receiver = get_attribute(root_xml, "receiver")83 self.transmission = get_attribute(root_xml, "transmission") 8485 self.DAT = get_attribute(root_xml, DAT)8687class DAT(Base) :88 """TAG zapouzdÅujÃcà informace o verzÃch jednotlivých datových sad"""89 __tablename__ = 'DAT'90 obj_id = Column(Integer, primary_key=True)9192 value = Column(Text)9394 EVTT_id = Column(Integer, ForeignKey('EVTT.obj_id'))95 EVTT = relationship("EVTT", backref=backref('DAT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)9697 SNET_id = Column(Integer, ForeignKey('SNET.obj_id'))98 SNET = relationship("SNET", backref=backref('DAT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)99100 UIRADR_id = Column(Integer, ForeignKey('UIRADR.obj_id'))101 UIRADR = relationship("UIRADR", backref=backref('DAT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)102103 def __init__(self, root_xml):104 if root_xml == None :105 return106107 self.value = root_xml.text108109 self.EVTT = get_attribute(root_xml, EVTT)110 self.SNET = get_attribute(root_xml, SNET)111 self.UIRADR = get_attribute(root_xml, UIRADR)112113class EVTT(Base) :114 """Obsahuje informace o katalogu událostà Alert-C"""115 __tablename__ = 'EVTT'116 obj_id = Column(Integer, primary_key=True)117118 value = Column(Text)119120 version = Column(Text)121 language = Column(Text)122 123 def __init__(self, root_xml):124 if root_xml == None :125 return126127 self.value = root_xml.text128 129 self.version = get_attribute(root_xml, "version")130 self.language = get_attribute(root_xml, "language") 131132class SNET(Base) :133 """Informace o datové sadÄ sÃtÄ komunikacÃ, na kterou jsou lokalizovány dopravnà události"""134 __tablename__ = 'SNET'135 obj_id = Column(Integer, primary_key=True)136137 value = Column(Text)138139 type = Column(Text)140 version = Column(Text)141 country = Column(Text)142143 def __init__(self, root_xml):144 if root_xml == None :145 return146147 self.value = root_xml.text148149 self.type = get_attribute(root_xml, "type")150 self.version = get_attribute(root_xml, "version")151 self.country = get_attribute(root_xml, "country") 152153class UIRADR(Base) :154 """Informace o datové sadÄ UIADR"""155 __tablename__ = 'UIRADR'156 obj_id = Column(Integer, primary_key=True)157158 value = Column(Text)159160 structure = Column(Text)161 version = Column(Text)162 date = Column(Text)163 164 def __init__(self, root_xml):165 if root_xml == None :166 return167168 self.value = root_xml.text169170 self.structure = get_attribute(root_xml, "structure")171 self.version = get_attribute(root_xml, "version")172 self.date = get_attribute(root_xml, "date")173174class MJD(Base) :175 """ZapouzdÅuje veÅ¡keré informace o dopravnÃch informacÃch."""176 __tablename__ = 'MJD'177 obj_id = Column(Integer, primary_key=True)178179 value = Column(Text)180181 count = Column(Text)182183 MSG = relationship("MSG", cascade="all, delete-orphan", single_parent=True)184185 def __init__(self, root_xml):186 if root_xml == None :187 return188189 self.value = root_xml.text190 191 self.count = get_attribute(root_xml, "count")192193 self.MSG = get_attribute(root_xml, MSG, repeatable=True)194195class MSG(Base) :196 """TAG zapouzdÅujÃcà jednu zprávu v dokumentu"""197 __tablename__ = 'MSG'198 obj_id = Column(Integer, primary_key=True)199200 MJD_id = Column(Integer, ForeignKey('MJD.obj_id'))201202 value = Column(Text)203204 id = Column(Text)205 version = Column(Text)206 type = Column(Text)207 planned = Column(Text)208209 MTIME_id = Column(Integer, ForeignKey('MTIME.obj_id'))210 MTIME = relationship("MTIME", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)211212 MTXT_id = Column(Integer, ForeignKey('MTXT.obj_id'))213 MTXT = relationship("MTXT", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)214215 MEVT_id = Column(Integer, ForeignKey('MEVT.obj_id'))216 MEVT = relationship("MEVT", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)217218 WDEST_id = Column(Integer, ForeignKey('WDEST.obj_id'))219 WDEST = relationship("WDEST", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)220221 MLOC_id = Column(Integer, ForeignKey('MLOC.obj_id'))222 MLOC = relationship("MLOC", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)223224 MDST_id = Column(Integer, ForeignKey('MDST.obj_id'))225 MDST = relationship("MDST", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)226227 DIVLOC_id = Column(Integer, ForeignKey('DIVLOC.obj_id'))228 DIVLOC = relationship("DIVLOC", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)229230 Location_id = Column(Integer, ForeignKey('OSMLocation.obj_id'))231 Location = relationship("OSMLocation", backref=backref('MSG', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)232233 def __init__(self, root_xml):234 if root_xml == None :235 return236237 self.value = root_xml.text238239 self.id = get_attribute(root_xml, "id")240 self.version = get_attribute(root_xml, "version")241 self.type = get_attribute(root_xml, "type")242 self.planned = get_attribute(root_xml, "planned") 243244 self.MTIME = get_attribute(root_xml, MTIME)245 self.MTXT = get_attribute(root_xml, MTXT)246 self.MEVT = get_attribute(root_xml, MEVT)247 self.WDEST = get_attribute(root_xml, WDEST)248 self.MLOC = get_attribute(root_xml, MLOC)249 self.MDST = get_attribute(root_xml, MDST)250 self.DIVLOC = get_attribute(root_xml, DIVLOC)251252 def set_Location(self, Location):253 self.Location = Location254255 def get_coord_object(self):256 if self.MLOC:257 if self.MLOC.SNTL :258 if self.MLOC.SNTL.COORD :259 return self.MLOC.SNTL.COORD260261 if self.WDEST :262 if self.WDEST.COORD :263 return self.WDEST.COORD264265 return None266267 def get_coordinations(self):268 if self.MLOC:269 if self.MLOC.SNTL :270 if self.MLOC.SNTL.COORD :271 return {272 "coordsystem" : self.MLOC.SNTL.coordsystem,273 "x" : self.MLOC.SNTL.COORD.x,274 "y" : self.MLOC.SNTL.COORD.y275 }276277 if self.WDEST :278 if self.WDEST.COORD :279 return {280 "coordsystem" : self.WDEST.coordsystem,281 "x" : self.WDEST.COORD.x,282 "y" : self.WDEST.COORD.y283 }284285 return None286287 def get_towncode(self):288 if self.MDST:289 if self.MDST.DEST:290 codes = [dest.TownCode for dest in self.MDST.DEST]291 return codes292293 return None294295 def get_regioncode(self):296 if self.MDST:297 if self.MDST.DEST:298 codes = [dest.RegionCode for dest in self.MDST.DEST]299 return codes300301 return None302303msg_location_id_index = Index('MSG_location_id_index', MSG.Location_id)304305class MTIME(Base) :306 """Tag zapouzdÅujÃcà Äasové informace o zprávÄ"""307 __tablename__ = 'MTIME'308 obj_id = Column(Integer, primary_key=True)309310 value = Column(Text)311312 format = Column(Text)313314 TGEN_id = Column(Integer, ForeignKey('TGEN.obj_id'))315 TGEN = relationship("TGEN", backref=backref('MTIME', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)316317 TSTA_id = Column(Integer, ForeignKey('TSTA.obj_id'))318 TSTA = relationship("TSTA", backref=backref('MTIME', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)319320 TSTO_id = Column(Integer, ForeignKey('TSTO.obj_id'))321 TSTO = relationship("TSTO", backref=backref('MTIME', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)322323 def __init__(self, root_xml):324 if root_xml == None :325 return326327 self.value = root_xml.text328 329 self.format = get_attribute(root_xml, "format")330 331 self.TGEN = get_attribute(root_xml, TGEN)332 self.TSTA = get_attribute(root_xml, TSTA)333 self.TSTO = get_attribute(root_xml, TSTO)334335class TGEN(Base) :336 """Äas kdy byla zpráva vygenerována"""337 __tablename__ = 'TGEN'338 obj_id = Column(Integer, primary_key=True)339340 value = Column(Text)341 342 def __init__(self, root_xml):343 if root_xml == None :344 return345346 self.value = root_xml.text347348class TSTA(Base) :349 """Äas od kdy zpráva platà nebo bude platná"""350 __tablename__ = 'TSTA'351 obj_id = Column(Integer, primary_key=True)352353 value = Column(Text)354 355 def __init__(self, root_xml):356 if root_xml == None :357 return358359 self.value = root_xml.text360361class TSTO(Base) :362 """Äas do kdy bude zpráva platná"""363 __tablename__ = 'TSTO'364 obj_id = Column(Integer, primary_key=True)365366 value = Column(Text)367 368 def __init__(self, root_xml):369 if root_xml == None :370 return371372 self.value = root_xml.text373374class MTXT(Base) :375 """Kompletnà textový popis události vyjadÅujÃcà KDE, CO, KDY, pÅÃpadnÄ JAK dlouho."""376 __tablename__ = 'MTXT'377 obj_id = Column(Integer, primary_key=True)378379 value = Column(Text)380381 language = Column(Text)382 383 def __init__(self, root_xml):384 if root_xml == None :385 return386387 self.value = root_xml.text388389 self.language = get_attribute(root_xml, "language") 390391class MEVT(Base) :392 """zapouzdÅuje veÅ¡keré informace o události"""393 __tablename__ = 'MEVT'394 obj_id = Column(Integer, primary_key=True)395396 value = Column(Text)397398 TMCE_id = Column(Integer, ForeignKey('TMCE.obj_id'))399 TMCE = relationship("TMCE", backref=backref('MEVT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)400401 WCOND_id = Column(Integer, ForeignKey('WCOND.obj_id'))402 WCOND = relationship("WCOND", backref=backref('MEVT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)403404 MTNCOND_id = Column(Integer, ForeignKey('MTNCOND.obj_id'))405 MTNCOND = relationship("MTNCOND", backref=backref('MEVT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)406407 OTXT_id = Column(Integer, ForeignKey('OTXT.obj_id'))408 OTXT = relationship("OTXT", backref=backref('MEVT', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)409410 def __init__(self, root_xml):411 if root_xml == None :412 return413414 self.value = root_xml.text415416 self.TMCE = get_attribute(root_xml, TMCE)417 self.WCOND = get_attribute(root_xml, WCOND)418 self.MTNCOND = get_attribute(root_xml, MTNCOND)419 self.OTXT = get_attribute(root_xml, OTXT)420421class TMCE(Base) :422 """zapouzdÅuje veÅ¡keré TMC informace o události, atributy jsou vázány na normu 14819-1"""423 __tablename__ = 'TMCE'424 obj_id = Column(Integer, primary_key=True)425426 value = Column(Text)427428 urgencyvalue = Column(Text)429 directionalityvalue = Column(Text)430 timescalevalue = Column(Text)431 durationtext = Column(Text)432 diversion = Column(Text)433434 EVI = relationship("EVI", cascade="all, delete-orphan", single_parent=True)435436 SPI_id = Column(Integer, ForeignKey('SPI.obj_id'))437 SPI = relationship("SPI", backref=backref('TMCE', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)438439 DIV_id = Column(Integer, ForeignKey('DIV.obj_id'))440 DIV = relationship("DIV", backref=backref('TMCE', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)441442 TXTMCE_id = Column(Integer, ForeignKey('TXTMCE.obj_id'))443 TXTMCE = relationship("TXTMCE", backref=backref('TMCE', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)444445 def __init__(self, root_xml):446 if root_xml == None :447 return448449 self.value = root_xml.text450451 self.urgencyvalue = get_attribute(root_xml, "urgencyvalue")452 self.directionalityvalue = get_attribute(root_xml, "directionalityvalue")453 self.timescalevalue = get_attribute(root_xml, "timescalevalue")454 self.durationtext = get_attribute(root_xml, "durationtext")455 self.diversion = get_attribute(root_xml, "diversion") 456457 self.EVI = get_attribute(root_xml, EVI, repeatable=True) 458 self.SPI = get_attribute(root_xml, SPI)459 self.DIV = get_attribute(root_xml, DIV)460 self.TXTMCE = get_attribute(root_xml, TXTMCE)461462class EVI(Base) :463 """Tag zapouzdÅujÃcà informace o ÄÃsle události v katalogu událostà o jeho aktualizaÄnà tÅÃdÄ,464 kvantifikátoru, poÅadà (pokud je zpráv vÃce za sebou) vÄetnÄ textového popisu aktualizaÄnà tÅÃdy a události.465 """466 __tablename__ = 'EVI'467 obj_id = Column(Integer, primary_key=True)468469 TMCE_id = Column(Integer, ForeignKey('TMCE.obj_id'))470471 value = Column(Text)472473 eventcode = Column(Text)474 updateclass = Column(Text)475 quantifier = Column(Text)476 eventorder = Column(Text)477478 TXUCL_id = Column(Integer, ForeignKey('TXUCL.obj_id'))479 TXUCL = relationship("TXUCL", backref=backref('EVI', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)480481 TXEVC_id = Column(Integer, ForeignKey('TXEVC.obj_id'))482 TXEVC = relationship("TXEVC", backref=backref('EVI', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)483484485486 def __init__(self, root_xml):487 if root_xml == None :488 return489490 self.value = root_xml.text491 492 self.eventcode = get_attribute(root_xml, "eventcode")493 self.updateclass = get_attribute(root_xml, "updateclass")494 self.quantifier = get_attribute(root_xml, "quantifier")495 self.eventorder = get_attribute(root_xml, "eventorder")496 497 self.TXUCL = get_attribute(root_xml, TXUCL)498 self.TXEVC = get_attribute(root_xml, TXEVC)499500501tmce_index = Index('TMCE_index', EVI.TMCE_id)502503class TXUCL(Base) :504 """textový popis skupiny události podle ALERT-C"""505 __tablename__ = 'TXUCL'506 obj_id = Column(Integer, primary_key=True)507508 value = Column(Text)509510 language = Column(Text)511 512 def __init__(self, root_xml):513 if root_xml == None :514 return515516 self.value = root_xml.text517518 self.language = get_attribute(root_xml, "language") 519520class TXEVC(Base) :521 """textový popis kódu události podle ALERT-C"""522 __tablename__ = 'TXEVC'523 obj_id = Column(Integer, primary_key=True)524525 value = Column(Text)526527 language = Column(Text)528 529 def __init__(self, root_xml):530 if root_xml == None :531 return532533 self.value = root_xml.text534535 self.language = get_attribute(root_xml, "language") 536537class SPI(Base) :538 """informace o ÄÃsle doplÅkové události, rychlostnÃm limitu a délce ovlivnÄného úseku komunikace"""539 __tablename__ = 'SPI'540 obj_id = Column(Integer, primary_key=True)541542 value = Column(Text)543544 supinfocode = Column(Text)545 supinfotext = Column(Text)546 speedlimit = Column(Text)547 length = Column(Text)548 549 def __init__(self, root_xml):550 if root_xml == None :551 return552553 self.value = root_xml.text554 555 self.supinfocode = get_attribute(root_xml, "supinfocode")556 self.supinfotext = get_attribute(root_xml, "supinfotext")557 self.speedlimit = get_attribute(root_xml, "speedlimit")558 self.length = get_attribute(root_xml, "length") 559560class DIV(Base) :561 """TAG zapouzdÅujÃcà informace o objÞÄce dle ALERT-C"""562 __tablename__ = 'DIV'563 obj_id = Column(Integer, primary_key=True)564565 value = Column(Text)566567 diversioncode = Column(Text)568 diversiontext = Column(Text)569 language = Column(Text)570 571 def __init__(self, root_xml):572 if root_xml == None :573 return574575 self.value = root_xml.text576 577 self.diversioncode = get_attribute(root_xml, "diversioncode")578 self.diversiontext = get_attribute(root_xml, "diversiontext")579 self.language = get_attribute(root_xml, "language") 580581class TXTMCE(Base) :582 """Text zprávy složený z hodnot jednotlivých událostà z ALERT-C katalogu událostÃ"""583 __tablename__ = 'TXTMCE'584 obj_id = Column(Integer, primary_key=True)585586 value = Column(Text)587588 language = Column(Text)589 590 def __init__(self, root_xml):591 if root_xml == None :592 return593594 self.value = root_xml.text595596 self.language = get_attribute(root_xml, "language") 597598class WCOND(Base) :599 """zapouzdÅuje informace o povÄtrnostnÃch podmÃnkách týkajÃcÃch se události typu âzimnà zpravodajstvÃâ"""600 __tablename__ = 'WCOND'601 obj_id = Column(Integer, primary_key=True)602603 value = Column(Text)604605 urgency = Column(Text)606607 TEMP_id = Column(Integer, ForeignKey('TEMP.obj_id'))608 TEMP = relationship("TEMP", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)609610 CLD_id = Column(Integer, ForeignKey('CLD.obj_id'))611 CLD = relationship("CLD", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)612613 PREC_id = Column(Integer, ForeignKey('PREC.obj_id'))614 PREC = relationship("PREC", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)615616 WIND_id = Column(Integer, ForeignKey('WIND.obj_id'))617 WIND = relationship("WIND", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)618619 VIS_id = Column(Integer, ForeignKey('VIS.obj_id'))620 VIS = relationship("VIS", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)621622 WTXT_id = Column(Integer, ForeignKey('WTXT.obj_id'))623 WTXT = relationship("WTXT", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)624625 TTXT_id = Column(Integer, ForeignKey('TTXT.obj_id'))626 TTXT = relationship("TTXT", backref=backref('WCOND', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)627628 def __init__(self, root_xml):629 if root_xml == None :630 return631632 self.value = root_xml.text633 634 self.urgency = get_attribute(root_xml, "urgency")635 636 self.TEMP = get_attribute(root_xml, TEMP)637 self.CLD = get_attribute(root_xml, CLD)638 self.PREC = get_attribute(root_xml, PREC)639 self.WIND = get_attribute(root_xml, WIND)640 self.VIS = get_attribute(root_xml, VIS)641 self.WTXT = get_attribute(root_xml, WTXT)642 self.TTXT = get_attribute(root_xml, TTXT)643644class TEMP(Base) :645 """informace o teplotÄ definovanou rozsahem od-do ve zpravodajské oblasti"""646 __tablename__ = 'TEMP'647 obj_id = Column(Integer, primary_key=True)648649 value = Column(Text)650651 unit = Column(Text)652 from_t = Column(Text)653 to_t = Column(Text)654 655 def __init__(self, root_xml):656 if root_xml == None :657 return658659 self.value = root_xml.text660 661 self.unit = get_attribute(root_xml, "unit")662 self.from_t = get_attribute(root_xml, "from_t")663 self.to_t = get_attribute(root_xml, "to_t") 664665class CLD(Base) :666 """informace o oblaÄnosti ve zpravodajské oblasti"""667 __tablename__ = 'CLD'668 obj_id = Column(Integer, primary_key=True)669670 value = Column(Text)671672 CloudyCode = Column(Text)673 language = Column(Text)674 675 def __init__(self, root_xml):676 if root_xml == None :677 return678679 self.value = root_xml.text680 681 self.CloudyCode = get_attribute(root_xml, "CloudyCode")682 self.language = get_attribute(root_xml, "language") 683684class PREC(Base) :685 """informace o srážkách ve zpravodajské oblasti"""686 __tablename__ = 'PREC'687 obj_id = Column(Integer, primary_key=True)688689 value = Column(Text)690691 PrecipitationCode = Column(Text)692 language = Column(Text)693 694 def __init__(self, root_xml):695 if root_xml == None :696 return697698 self.value = root_xml.text699 700 self.PrecipitationCode = get_attribute(root_xml, "PrecipitationCode")701 self.language = get_attribute(root_xml, "language") 702703class WIND(Base) :704 """informace o sÃle a smÄru vÄtru ve zpravodajské oblasti"""705 __tablename__ = 'WIND'706 obj_id = Column(Integer, primary_key=True)707708 value = Column(Text)709710 WindCode = Column(Text)711 WindDirectionCode = Column(Text)712 language = Column(Text)713 714 def __init__(self, root_xml):715 if root_xml == None :716 return717718 self.value = root_xml.text719 720 self.WindCode = get_attribute(root_xml, "WindCode")721 self.WindDirectionCode = get_attribute(root_xml, "WindDirectionCode")722 self.language = get_attribute(root_xml, "language") 723724class VIS(Base) :725 """informace o viditelnosti ve zpravodajské oblasti"""726 __tablename__ = 'VIS'727 obj_id = Column(Integer, primary_key=True)728729 value = Column(Text)730731 VisibilityCode = Column(Text)732 language = Column(Text)733 734 def __init__(self, root_xml):735 if root_xml == None :736 return737738 self.value = root_xml.text739740 self.VisibilityCode = get_attribute(root_xml, "VisibilityCode")741 self.language = get_attribute(root_xml, "language") 742743class WTXT(Base) :744 """agregovaná textová informace o povÄtrnostnÃch podmÃnkách ve zpravodajské oblasti"""745 __tablename__ = 'WTXT'746 obj_id = Column(Integer, primary_key=True)747748 value = Column(Text)749750 language = Column(Text)751 752 def __init__(self, root_xml):753 if root_xml == None :754 return755756 self.value = root_xml.text757 758 self.language = get_attribute(root_xml, "language") 759760class TTXT(Base) :761 """agregovaná textová informace o teplotnÃch podmÃnkách ve zpravodajské oblasti"""762 __tablename__ = 'TTXT'763 obj_id = Column(Integer, primary_key=True)764765 value = Column(Text)766767 language = Column(Text)768 769 def __init__(self, root_xml):770 if root_xml == None :771 return772773 self.value = root_xml.text774775 self.language = get_attribute(root_xml, "language") 776777class MTNCOND(Base) :778 """zapouzdÅuje informace o sjÃzdnosti a stavu povrchu u sledovaných Äástà silniÄnà sÃtÄ (tÅÃdy komunikace, Äást komunikace apod.)"""779 __tablename__ = 'MTNCOND'780 obj_id = Column(Integer, primary_key=True)781782 value = Column(Text)783784 ISTN = relationship("ISTN", cascade="all, delete-orphan", single_parent=True)785 786 def __init__(self, root_xml):787 if root_xml == None :788 return789790 self.value = root_xml.text791 792 self.ISTN = get_attribute(root_xml, ISTN, repeatable=True)793794class ISTN(Base) :795 """zapouzdÅuje informace o sjÃzdnosti a stavu povrchu u sledovaných Äástà silniÄnà sÃtÄ (tÅÃdy komunikace, Äást komunikace apod.)"""796 __tablename__ = 'ISTN'797 obj_id = Column(Integer, primary_key=True)798799 MTNCOND_id = Column(Integer, ForeignKey('MTNCOND.obj_id'))800801 value = Column(Text)802803 InterestsSectionCode = Column(Text)804 InterestsSectionName = Column(Text)805 urgency = Column(Text)806807 RCOND_id = Column(Integer, ForeignKey('RCOND.obj_id'))808 RCOND = relationship("RCOND", backref=backref('ISTN', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)809810 RSCOND_id = Column(Integer, ForeignKey('RSCOND.obj_id'))811 RSCOND = relationship("RSCOND", backref=backref('ISTN', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)812813 TXISTN_id = Column(Integer, ForeignKey('TXISTN.obj_id'))814 TXISTN = relationship("TXISTN", backref=backref('ISTN', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)815 816 def __init__(self, root_xml):817 if root_xml == None :818 return819820 self.value = root_xml.text821822 823 self.InterestsSectionCode = get_attribute(root_xml, "InterestsSectionCode")824 self.InterestsSectionName = get_attribute(root_xml, "InterestsSectionName")825 self.urgency = get_attribute(root_xml, "urgency")826 827 self.RCOND = get_attribute(root_xml, RCOND)828 self.RSCOND = get_attribute(root_xml, RSCOND)829 self.TXISTN = get_attribute(root_xml, TXISTN)830831class RCOND(Base) :832 """informace o sjÃzdnosti"""833 __tablename__ = 'RCOND'834 obj_id = Column(Integer, primary_key=True)835836 value = Column(Text)837838 RoadConditionCode = Column(Text)839 language = Column(Text)840 841 def __init__(self, root_xml):842 if root_xml == None :843 return844845 self.value = root_xml.text846 847 self.RoadConditionCode = get_attribute(root_xml, "RoadConditionCode")848 self.language = get_attribute(root_xml, "language") 849850class RSCOND(Base) :851 """informace o stavu povrchu vozovky"""852 __tablename__ = 'RSCOND'853 obj_id = Column(Integer, primary_key=True)854855 value = Column(Text)856857 RoadSurfaceConditionCode = Column(Text)858 language = Column(Text)859860 def __init__(self, root_xml):861 if root_xml == None :862 return863864 self.value = root_xml.text865 866 self.RoadSurfaceConditionCode = get_attribute(root_xml, "RoadSurfaceConditionCode")867 self.language = get_attribute(root_xml, "language") 868869class TXISTN(Base) :870 """agregovaná textová informace o sjÃzdnosti stavu povrchu vozovky"""871 __tablename__ = 'TXISTN'872 obj_id = Column(Integer, primary_key=True)873874 value = Column(Text)875876 language = Column(Text)877 878 def __init__(self, root_xml):879 if root_xml == None :880 return881882 self.value = root_xml.text883 884 self.language = get_attribute(root_xml, "language") 885886class WDEST(Base) :887 """zapouzdÅuje informace o mÃstu a názvu zpravodajské oblasti"""888 __tablename__ = 'WDEST'889 obj_id = Column(Integer, primary_key=True)890891 value = Column(Text)892893 coordsystem = Column(Text)894 NewsRegionCode = Column(Text)895 NewsRegionName = Column(Text)896897 COORD_id = Column(Integer, ForeignKey('COORD.obj_id'))898 COORD = relationship("COORD", backref=backref('WDEST', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)899 900 def __init__(self, root_xml):901 if root_xml == None :902 return903904 self.value = root_xml.text905 906 self.coordsystem = get_attribute(root_xml, "coordsystem")907 self.NewsRegionCode = get_attribute(root_xml, "NewsRegionCode")908 self.NewsRegionName = get_attribute(root_xml, "NewsRegionName")909 910 self.COORD = get_attribute(root_xml, COORD)911912class OTXT(Base) :913 """Volný text zadaný operátorem"""914 __tablename__ = 'OTXT'915 obj_id = Column(Integer, primary_key=True)916917 value = Column(Text)918 919 def __init__(self, root_xml):920 if root_xml == None :921 return922923 self.value = root_xml.text924925class MLOC(Base) :926 """TAG zapouzdÅujÃcà informace o mÃstu události"""927 __tablename__ = 'MLOC'928 obj_id = Column(Integer, primary_key=True)929930 value = Column(Text)931932 TXPL_id = Column(Integer, ForeignKey('TXPL.obj_id'))933 TXPL = relationship("TXPL", backref=backref('MLOC', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)934935 TMCL_id = Column(Integer, ForeignKey('TMCL.obj_id'))936 TMCL = relationship("TMCL", backref=backref('MLOC', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)937938 SNTL_id = Column(Integer, ForeignKey('SNTL.obj_id'))939 SNTL = relationship("SNTL", backref=backref('MLOC', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)940 941 def __init__(self, root_xml):942 if root_xml == None :943 return944945 self.value = root_xml.text946 947 self.TXPL = get_attribute(root_xml, TXPL)948 self.TMCL = get_attribute(root_xml, TMCL)949 self.SNTL = get_attribute(root_xml, SNTL)950951class TXPL(Base) :952 """textová informace popisujÃcà mÃsto události nebo trasu objÞÄky"""953 __tablename__ = 'TXPL'954 obj_id = Column(Integer, primary_key=True)955956 value = Column(Text)957 958 def __init__(self, root_xml):959 if root_xml == None :960 return961962 self.value = root_xml.text963964class TMCL(Base) :965 """TAG zapouzdÅujÃcà informace o mÃstu události zakódované pomocà lokalizaÄnà databáze"""966 __tablename__ = 'TMCL'967 obj_id = Column(Integer, primary_key=True)968969 value = Column(Text)970971 Primarycode = Column(Text)972 Extent = Column(Text)973 Direction = Column(Text)974 Roadid = Column(Text)975 976 def __init__(self, root_xml):977 if root_xml == None :978 return979980 self.value = root_xml.text981 982 self.Primarycode = get_attribute(root_xml, "Primarycode")983 self.Extent = get_attribute(root_xml, "Extent")984 self.Direction = get_attribute(root_xml, "Direction")985 self.Roadid = get_attribute(root_xml, "Roadid") 986987class SNTL(Base) :988 """informace o mÃstu události zadané pomocà úseků použité sÃtÄ komunikacÃ"""989 __tablename__ = 'SNTL'990 obj_id = Column(Integer, primary_key=True)991992 value = Column(Text)993994 coordsystem = Column(Text)995 count = Column(Text)996997 COORD_id = Column(Integer, ForeignKey('COORD.obj_id'))998 COORD = relationship("COORD", backref=backref('SNTL', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)9991000 STEL = relationship("STEL", cascade="all, delete-orphan", single_parent=True)1001 1002 def __init__(self, root_xml):1003 if root_xml == None :1004 return10051006 self.value = root_xml.text1007 1008 self.coordsystem = get_attribute(root_xml, "coordsystem")1009 self.count = get_attribute(root_xml, "count")1010 1011 self.COORD = get_attribute(root_xml, COORD)1012 self.STEL = get_attribute(root_xml, STEL, repeatable=True)10131014class COORD(Base) :1015 """souÅadnice události nebo zpravodajské oblasti v souÅadnicovém systému1016 definovaném v DOC\MJD\MSG\MLOC\SNTL â atribut âcoordsystemâ"""1017 __tablename__ = 'COORD'1018 obj_id = Column(Integer, primary_key=True)10191020 value = Column(Text)10211022 x = Column(Text)1023 y = Column(Text)10241025 Location_id = Column(Integer, ForeignKey('OSMLocation.obj_id'))1026 Location = relationship("OSMLocation", backref=backref('COORD', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)1027 1028 def __init__(self, root_xml, Location=None):1029 if root_xml == None :1030 return10311032 self.value = root_xml.text1033 1034 self.x = get_attribute(root_xml, "x")1035 self.y = get_attribute(root_xml, "y")10361037 self.Location = Location10381039 def set_Location(self, Location):1040 self.Location = Location10411042 def get_coordinations(self, db_session):1043 coord_encapsulation = db_session.query(SNTL).filter(SNTL.COORD == self).first()1044 if not coord_encapsulation:1045 coord_encapsulation = db_session.query(WDEST).filter(WDEST.COORD == self).first()10461047 if not coord_encapsulation:1048 raise Exception("There is not coord encapsulation!")10491050 return {1051 "coordsystem" : coord_encapsulation.coordsystem,1052 "x" : self.x,1053 "y" : self.y1054 }10551056 def get_doc_filename(self, db_session):1057 wdest_obj = db_session.query(WDEST).filter(WDEST.COORD == self).first()1058 if wdest_obj:1059 msg_obj = db_session.query(MSG).filter(MSG.WDEST == wdest_obj).first()1060 else:1061 sntl_obj = db_session.query(SNTL).filter(SNTL.COORD == self).first()10621063 if not sntl_obj:1064 return ""1065 mloc_obj = db_session.query(MLOC).filter(MLOC.SNTL == sntl_obj).first()10661067 if not mloc_obj:1068 return ""1069 msg_obj = db_session.query(MSG).filter(MSG.MLOC == mloc_obj).first()10701071 if not msg_obj:1072 return ""1073 mjd_obj = db_session.query(MJD).filter(MJD.MSG.contains(msg_obj)).first()10741075 if not mjd_obj:1076 return ""1077 doc_obj = db_session.query(DOC).filter(DOC.MJD == mjd_obj).first()10781079 return doc_obj.file_name108010811082coord_location_id_index = Index('COORD_location_id_index', COORD.Location_id)10831084class STEL(Base) :1085 """Seznam ÄÃsel ovlivnÄných úseku"""1086 __tablename__ = 'STEL'1087 obj_id = Column(Integer, primary_key=True)10881089 SNTL_id = Column(Integer, ForeignKey('SNTL.obj_id'))10901091 value = Column(Text)10921093 el_code = Column(Text)1094 1095 def __init__(self, root_xml):1096 if root_xml == None :1097 return10981099 self.value = root_xml.text1100 1101 self.el_code = get_attribute(root_xml, "el_code")11021103class MDST(Base) :1104 """Tag zapouzdÅujÃcà informace o mÃsta události v souladu s republikovým ÄÃselnÃkem UIRADR"""1105 __tablename__ = 'MDST'1106 obj_id = Column(Integer, primary_key=True)11071108 value = Column(Text)11091110 DEST = relationship("DEST", cascade="all, delete-orphan", single_parent=True)11111112 def __init__(self, root_xml):1113 if root_xml == None :1114 return11151116 self.value = root_xml.text1117 1118 self.DEST = get_attribute(root_xml, DEST, repeatable=True)11191120class DEST(Base) :1121 """Informace o názvu a kódu administrativnÃch jednotek"""1122 __tablename__ = 'DEST'1123 obj_id = Column(Integer, primary_key=True)11241125 MDST_id = Column(Integer, ForeignKey('MDST.obj_id'))11261127 value = Column(Text)11281129 CountryName = Column(Text)1130 TownDistrictName = Column(Text)1131 TownDistrictCode = Column(Text)1132 TownName = Column(Text)1133 TownCode = Column(Text)1134 TownShip = Column(Text)1135 TownShipCode = Column(Text)1136 RegionName = Column(Text)1137 RegionCode = Column(Text)11381139 STRE_id = Column(Integer, ForeignKey('STRE.obj_id'))1140 STRE = relationship("STRE", backref=backref('DEST', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)11411142 ROAD_id = Column(Integer, ForeignKey('ROAD.obj_id'))1143 ROAD = relationship("ROAD", backref=backref('DEST', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)11441145 def __init__(self, root_xml):1146 if root_xml == None :1147 return11481149 self.value = root_xml.text1150 1151 self.CountryName = get_attribute(root_xml, "CountryName")1152 self.TownDistrictName = get_attribute(root_xml, "TownDistrictName")1153 self.TownDistrictCode = get_attribute(root_xml, "TownDistrictCode")1154 self.TownName = get_attribute(root_xml, "TownName")1155 self.TownCode = get_attribute(root_xml, "TownCode")1156 self.TownShip = get_attribute(root_xml, "TownShip")1157 self.TownShipCode = get_attribute(root_xml, "TownShipCode")1158 self.RegionName = get_attribute(root_xml, "RegionName")1159 self.RegionCode = get_attribute(root_xml, "RegionCode")1160 1161 self.STRE = get_attribute(root_xml, STRE)1162 self.ROAD = get_attribute(root_xml, ROAD)11631164class STRE(Base) :1165 """Informace o administrativnà jednotce ulice"""1166 __tablename__ = 'STRE'1167 obj_id = Column(Integer, primary_key=True)11681169 value = Column(Text)11701171 StreetName = Column(Text)1172 StreetCode = Column(Text)1173 1174 def __init__(self, root_xml):1175 if root_xml == None :1176 return11771178 self.value = root_xml.text1179 1180 self.StreetName = get_attribute(root_xml, "StreetName")1181 self.StreetCode = get_attribute(root_xml, "StreetCode")11821183class ROAD(Base) :1184 """Informace o komunikaci vzhledem k UIRADR"""1185 __tablename__ = 'ROAD'1186 obj_id = Column(Integer, primary_key=True)11871188 value = Column(Text)11891190 RoadNumber = Column(Text)1191 RoadClass = Column(Text)1192 1193 def __init__(self, root_xml):1194 if root_xml == None :1195 return11961197 self.value = root_xml.text1198 1199 self.RoadNumber = get_attribute(root_xml, "RoadNumber")1200 self.RoadClass = get_attribute(root_xml, "RoadClass") 12011202class DIVLOC(Base) :1203 """TAG zapouzdÅujÃcà informace o trase objÞÄky"""1204 __tablename__ = 'DIVLOC'1205 obj_id = Column(Integer, primary_key=True)12061207 value = Column(Text)12081209 DIVROUTE = relationship("DIVROUTE", cascade="all, delete-orphan", single_parent=True)12101211 def __init__(self, root_xml):1212 if root_xml == None :1213 return12141215 self.value = root_xml.text12161217 self.DIVROUTE = get_attribute(root_xml, DIVROUTE, repeatable=True)12181219class DIVROUTE(Base) :1220 """TAG zapouzdÅujÃcà lokalizaci a detailnà informace o trase objÞÄky"""1221 __tablename__ = 'DIVROUTE'1222 obj_id = Column(Integer, primary_key=True)12231224 DIVLOC_id = Column(Integer, ForeignKey('DIVLOC.obj_id'))12251226 value = Column(Text)12271228 description = Column(Text)12291230 TXPL_id = Column(Integer, ForeignKey('TXPL.obj_id'))1231 TXPL = relationship("TXPL", backref=backref('DIVROUTE', order_by=obj_id), cascade="all, delete-orphan", single_parent=True)1232 1233 def __init__(self, root_xml):1234 if root_xml == None :1235 return12361237 self.value = root_xml.text1238 1239 self.description = get_attribute(root_xml, "description")1240 1241 self.TXPL = get_attribute(root_xml, TXPL)1242124312441245
...
main_page.py
Source:main_page.py
...41 # title42 assert 'Electric Cars, Solar & Clean Energy | Tesla' in driver.title43 print(driver.title)44 # description45 print(driver.find_element(By.XPATH, "//head/meta[2]").get_attribute("content"))46 if driver.find_element(By.XPATH, "//head/meta[2]"): # //meta[@name='description']47 print('I found the description')48 driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")49 button = driver.find_element(By.XPATH, hp.Model_S)50 href_data = button.get_attribute('href')51 if href_data is None:52 is_clickable = False53 else:54 print(href_data)55 url_from_attr = driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")56 url_from_attr_raw = "%r" % url_from_attr57 print(" URL from attribute -->> " + url_from_attr)58 print(" Raw string -->> " + url_from_attr_raw)59 menu = driver.find_elements_by_xpath(hp.side_menu)60 map_menu = []61 print(len(menu))62 for x in menu:63 d = {}64 t = x.get_attribute('textContent')65 l = x.get_attribute('href')66 r = requests.get(l)67 d['name'] = t68 d['link'] = l69 d['status code'] = r.status_code70 if r.status_code != 200:71 print(f'Fail!!! - {t}, {l}, Status Code is {r.status_code}')72 else:73 print(f'OK - {t}, {l}')74 map_menu.append(d)75 with open('output_chrome1.json', 'w') as json_file:76 json.dump(map_menu, open('output_chrome1.json', 'w'))77 # assertion header78 assert (driver.find_element(By.XPATH, hp.Model_3).get_attribute("href"))79 assert (driver.find_element(By.XPATH, hp.Model_X).get_attribute("href"))80 assert (driver.find_element(By.XPATH, hp.Model_Y).get_attribute("href"))81 assert (driver.find_element(By.XPATH, hp.Solar_Roof).get_attribute("href"))82 assert (driver.find_element(By.XPATH, hp.Solar_Panels).get_attribute("href"))83 assert (driver.find_element(By.XPATH,hp.Shop).get_attribute("href"))84 assert (driver.find_element(By.XPATH, hp.Account).get_attribute("href"))85 # driver.find_element(By.XPATH, "//span[contains(text(),'Menu')]").click()86 '''87 print(driver.find_element(By.XPATH, "//a[@href='/inventory/new/m3'][contains(.,'Existing Inventory')]").get_attribute("href"))88 print(driver.find_element(By.XPATH, "//a[@href='/inventory/used/m3'][contains(.,'Used Inventory')]").get_attribute("href"))89 print(driver.find_element(By.XPATH, "//a[@href='/tradein'][contains(.,'Trade-In')]").get_attribute("href"))90 print(driver.find_element(By.XPATH, "//a[@href='/drive'][contains(.,'Test Drive')]").get_attribute("href"))91 print(driver.find_element(By.XPATH, "//a[@href='/cybertruck'][contains(.,'Cybertruck')]").get_attribute("href"))92 print(driver.find_element(By.XPATH, "//a[@href='/roadster'][contains(.,'Roadster')]").get_attribute("href"))93 print(driver.find_element(By.XPATH, "//a[@href='/semi'][contains(.,'Semi')]").get_attribute("href"))94 print(driver.find_element(By.XPATH, "//a[@href='/charging'][contains(.,'Charging')]").get_attribute("href"))95 print(driver.find_element(By.XPATH, "//a[@href='/powerwall'][contains(.,'Powerwall')]").get_attribute("href"))96 print(driver.find_element(By.XPATH, "//a[@href='/commercial'][contains(.,'Commercial Energy')]").get_attribute("href"))97 print(driver.find_element(By.XPATH, "//a[@href='/utilities'][contains(.,'Utilities')]").get_attribute("href"))98 print(driver.find_element(By.XPATH, "//a[@href='/findus'][contains(.,'Find Us')]").get_attribute("href"))99 print(driver.find_element(By.XPATH, "//a[@href='/support'][contains(.,'Support')]").get_attribute("href"))100 print(driver.find_element(By.XPATH, "//a[@href='https://ir.tesla.com'][contains(.,'Investor Relations')]").get_attribute("href"))101 print(driver.find_element(By.XPATH, "//strong[contains(text(),'United States')]").get_attribute("href"))102 print(driver.find_element(By.XPATH, "//a[@href='/teslaaccount'][contains(.,'Account')]").get_attribute("href"))'''103 # scrolling104 time.sleep(3)105 assert (driver.find_element(By.XPATH, hp.logo_S))106 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)107 time.sleep(3)108 assert (driver.find_element(By.XPATH, hp.logo_Y))109 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)110 time.sleep(3)111 assert (driver.find_element(By.XPATH, hp.logo_3))112 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)113 time.sleep(3)114 assert (driver.find_element(By.XPATH, hp.logo_X))115 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)116 time.sleep(3)117 assert (driver.find_element(By.XPATH, hp.logo_Solar_Panels))118 driver.find_element(By.XPATH, hp.btn_Order_Now).send_keys(Keys.PAGE_DOWN)119 time.sleep(3)120 assert (driver.find_element(By.XPATH, hp.logo_Solar_Roof))121 driver.find_element(By.XPATH, hp.btn_Learn_More).send_keys(Keys.PAGE_DOWN)122 time.sleep(3)123 assert (driver.find_element(By.XPATH, hp.logo_Accessories))124 driver.find_element(By.XPATH, hp.btn_Shop_Now).send_keys(Keys.PAGE_DOWN)125 # assertion footer menu126 assert (driver.find_element(By.XPATH, hp.About).get_attribute("href"))127 assert (driver.find_element(By.XPATH, hp.Legal).get_attribute("href"))128 assert (driver.find_element(By.XPATH, hp.Contact).get_attribute("href"))129 assert (driver.find_element(By.XPATH, hp.Career).get_attribute("href"))130 assert (driver.find_element(By.XPATH, hp.News).get_attribute("href"))131 assert (driver.find_element(By.XPATH, hp.Engage).get_attribute("href"))132 assert (driver.find_element(By.XPATH, hp.Locations).get_attribute("href"))133 def tearDown(self):134 self.driver.quit()135class Chrome2(unittest.TestCase): # Создаем клаÑÑ ÑеÑÑа, пиÑем вÑегда (unittest.TestCase)136 def setUp(self):137 desired_cap = {138 'browser': 'Chrome',139 'browser_version': 'latest',140 'os': 'Windows',141 'os_version': '10',142 'resolution': '1920x1080',143 'name': 'Bstack-[Python] Chrome Test'144 }145 url = key.mykey1146 desired_cap['acceptSslCerts'] = True147 self.driver = webdriver.Remote(command_executor=url, desired_capabilities=desired_cap)148 # self.driver = webdriver.Chrome() #ÐÑиÑвоили дÑайвеÑÑ Ð·Ð½Ð°Ñение Chrome (иниÑиализаÑоÑ)149 # Methods in UnitTest should start from "test" keyword150 def test_1150x750(self):151 driver = self.driver # ÐÑиÑвоили Ð´Ð»Ñ ÑÑого меÑода driver = self.driver, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑаÑилÑÑÑ Ðº setUp152 driver.set_window_size(1150, 750)153 driver.get(hp.tesla_url)154 wait = WebDriverWait(driver, 3)155 wait.until(EC.element_to_be_clickable((By.XPATH, hp.tesla_logo)))156 '''driver.get(hp.tesla_url)157 driver.maximize_window()158 time.sleep(2)'''159 driver.find_element(By.XPATH, hp.tesla_logo).click() # click logo and renew page160 # title161 assert 'Electric Cars, Solar & Clean Energy | Tesla' in driver.title162 print(driver.title)163 # description164 print(driver.find_element(By.XPATH, "//head/meta[2]").get_attribute("content"))165 if driver.find_element(By.XPATH, "//head/meta[2]"): # //meta[@name='description']166 print('I found the description')167 driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")168 button = driver.find_element(By.XPATH, hp.Model_S)169 href_data = button.get_attribute('href')170 if href_data is None:171 is_clickable = False172 else:173 print(href_data)174 url_from_attr = driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")175 url_from_attr_raw = "%r" % url_from_attr176 print(" URL from attribute -->> " + url_from_attr)177 print(" Raw string -->> " + url_from_attr_raw)178 menu = driver.find_elements_by_xpath(hp.side_menu)179 map_menu = []180 print(len(menu))181 for x in menu:182 d = {}183 t = x.get_attribute('textContent')184 l = x.get_attribute('href')185 r = requests.get(l)186 d['name'] = t187 d['link'] = l188 d['status code'] = r.status_code189 if r.status_code != 200:190 print(f'Fail!!! - {t}, {l}, Status Code is {r.status_code}')191 else:192 print(f'OK - {t}, {l}')193 map_menu.append(d)194 with open('output_chrome2.json', 'w') as json_file:195 json.dump(map_menu, open('output_chrome2.json', 'w'))196 # assertion header197 assert (driver.find_element(By.XPATH, hp.Model_3).get_attribute("href"))198 assert (driver.find_element(By.XPATH, hp.Model_X).get_attribute("href"))199 assert (driver.find_element(By.XPATH, hp.Model_Y).get_attribute("href"))200 assert (driver.find_element(By.XPATH, hp.Solar_Roof).get_attribute("href"))201 assert (driver.find_element(By.XPATH, hp.Solar_Panels).get_attribute("href"))202 assert (driver.find_element(By.XPATH, hp.Shop).get_attribute("href"))203 assert (driver.find_element(By.XPATH, hp.Account).get_attribute("href"))204 # driver.find_element(By.XPATH, "//span[contains(text(),'Menu')]").click()205 '''206 print(driver.find_element(By.XPATH, "//a[@href='/inventory/new/m3'][contains(.,'Existing Inventory')]").get_attribute("href"))207 print(driver.find_element(By.XPATH, "//a[@href='/inventory/used/m3'][contains(.,'Used Inventory')]").get_attribute("href"))208 print(driver.find_element(By.XPATH, "//a[@href='/tradein'][contains(.,'Trade-In')]").get_attribute("href"))209 print(driver.find_element(By.XPATH, "//a[@href='/drive'][contains(.,'Test Drive')]").get_attribute("href"))210 print(driver.find_element(By.XPATH, "//a[@href='/cybertruck'][contains(.,'Cybertruck')]").get_attribute("href"))211 print(driver.find_element(By.XPATH, "//a[@href='/roadster'][contains(.,'Roadster')]").get_attribute("href"))212 print(driver.find_element(By.XPATH, "//a[@href='/semi'][contains(.,'Semi')]").get_attribute("href"))213 print(driver.find_element(By.XPATH, "//a[@href='/charging'][contains(.,'Charging')]").get_attribute("href"))214 print(driver.find_element(By.XPATH, "//a[@href='/powerwall'][contains(.,'Powerwall')]").get_attribute("href"))215 print(driver.find_element(By.XPATH, "//a[@href='/commercial'][contains(.,'Commercial Energy')]").get_attribute("href"))216 print(driver.find_element(By.XPATH, "//a[@href='/utilities'][contains(.,'Utilities')]").get_attribute("href"))217 print(driver.find_element(By.XPATH, "//a[@href='/findus'][contains(.,'Find Us')]").get_attribute("href"))218 print(driver.find_element(By.XPATH, "//a[@href='/support'][contains(.,'Support')]").get_attribute("href"))219 print(driver.find_element(By.XPATH, "//a[@href='https://ir.tesla.com'][contains(.,'Investor Relations')]").get_attribute("href"))220 print(driver.find_element(By.XPATH, "//strong[contains(text(),'United States')]").get_attribute("href"))221 print(driver.find_element(By.XPATH, "//a[@href='/teslaaccount'][contains(.,'Account')]").get_attribute("href"))'''222 # scrolling223 time.sleep(3)224 assert (driver.find_element(By.XPATH, hp.logo_S))225 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)226 time.sleep(3)227 assert (driver.find_element(By.XPATH, hp.logo_Y))228 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)229 time.sleep(3)230 assert (driver.find_element(By.XPATH, hp.logo_3))231 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)232 time.sleep(3)233 assert (driver.find_element(By.XPATH, hp.logo_X))234 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)235 time.sleep(3)236 assert (driver.find_element(By.XPATH, hp.logo_Solar_Panels))237 driver.find_element(By.XPATH, hp.btn_Order_Now).send_keys(Keys.PAGE_DOWN)238 time.sleep(3)239 assert (driver.find_element(By.XPATH, hp.logo_Solar_Roof))240 driver.find_element(By.XPATH, hp.btn_Learn_More).send_keys(Keys.PAGE_DOWN)241 time.sleep(3)242 assert (driver.find_element(By.XPATH, hp.logo_Accessories))243 driver.find_element(By.XPATH, hp.btn_Shop_Now).send_keys(Keys.PAGE_DOWN)244 # assertion footer menu245 assert (driver.find_element(By.XPATH, hp.About).get_attribute("href"))246 assert (driver.find_element(By.XPATH, hp.Legal).get_attribute("href"))247 assert (driver.find_element(By.XPATH, hp.Contact).get_attribute("href"))248 assert (driver.find_element(By.XPATH, hp.Career).get_attribute("href"))249 assert (driver.find_element(By.XPATH, hp.News).get_attribute("href"))250 assert (driver.find_element(By.XPATH, hp.Engage).get_attribute("href"))251 assert (driver.find_element(By.XPATH, hp.Locations).get_attribute("href"))252 def tearDown(self):253 self.driver.quit()254class Firefox(unittest.TestCase): # 4.Second Unit test for Firefox browser255 def setUp(self):256 desired_cap = {257 'browser': 'firefox',258 'browser_version': 'latest',259 'os': 'Windows',260 'os_version': '10',261 'resolution': '1920x1080',262 'name': 'Bstack-[Python] Chrome Test'263 }264 url = key.mykey1265 desired_cap['acceptSslCerts'] = True266 self.driver = webdriver.Remote(command_executor=url, desired_capabilities=desired_cap)267 # self.driver = webdriver.Chrome() #ÐÑиÑвоили дÑайвеÑÑ Ð·Ð½Ð°Ñение Chrome (иниÑиализаÑоÑ)268 # Methods in UnitTest should start from "test" keyword269 def test_fullscreen(self):270 driver = self.driver # ÐÑиÑвоили Ð´Ð»Ñ ÑÑого меÑода driver = self.driver, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑаÑилÑÑÑ Ðº setUp271 driver.maximize_window()272 driver.get(hp.tesla_url)273 wait = WebDriverWait(driver, 3)274 wait.until(EC.element_to_be_clickable((By.XPATH, hp.tesla_logo)))275 '''driver.get(hp.tesla_url)276 driver.maximize_window()277 time.sleep(2)'''278 driver.find_element(By.XPATH, hp.tesla_logo).click() # click logo and renew page279 # title280 assert 'Electric Cars, Solar & Clean Energy | Tesla' in driver.title281 print(driver.title)282 # description283 print(driver.find_element(By.XPATH, "//head/meta[2]").get_attribute("content"))284 if driver.find_element(By.XPATH, "//head/meta[2]"): # //meta[@name='description']285 print('I found the description')286 driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")287 button = driver.find_element(By.XPATH, hp.Model_S)288 href_data = button.get_attribute('href')289 if href_data is None:290 is_clickable = False291 else:292 print(href_data)293 url_from_attr = driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")294 url_from_attr_raw = "%r" % url_from_attr295 print(" URL from attribute -->> " + url_from_attr)296 print(" Raw string -->> " + url_from_attr_raw)297 menu = driver.find_elements_by_xpath(hp.side_menu)298 map_menu = []299 print(len(menu))300 for x in menu:301 d = {}302 t = x.get_attribute('textContent')303 l = x.get_attribute('href')304 r = requests.get(l)305 d['name'] = t306 d['link'] = l307 d['status code'] = r.status_code308 if r.status_code != 200:309 print(f'Fail!!! - {t}, {l}, Status Code is {r.status_code}')310 else:311 print(f'OK - {t}, {l}')312 map_menu.append(d)313 with open('output_firefox1.json', 'w') as json_file:314 json.dump(map_menu, open('output_firefox1.json', 'w'))315 # assertion header316 assert (driver.find_element(By.XPATH, hp.Model_3).get_attribute("href"))317 assert (driver.find_element(By.XPATH, hp.Model_X).get_attribute("href"))318 assert (driver.find_element(By.XPATH, hp.Model_Y).get_attribute("href"))319 assert (driver.find_element(By.XPATH, hp.Solar_Roof).get_attribute("href"))320 assert (driver.find_element(By.XPATH, hp.Solar_Panels).get_attribute("href"))321 assert (driver.find_element(By.XPATH, hp.Shop).get_attribute("href"))322 assert (driver.find_element(By.XPATH, hp.Account).get_attribute("href"))323 # driver.find_element(By.XPATH, "//span[contains(text(),'Menu')]").click()324 '''325 print(driver.find_element(By.XPATH, "//a[@href='/inventory/new/m3'][contains(.,'Existing Inventory')]").get_attribute("href"))326 print(driver.find_element(By.XPATH, "//a[@href='/inventory/used/m3'][contains(.,'Used Inventory')]").get_attribute("href"))327 print(driver.find_element(By.XPATH, "//a[@href='/tradein'][contains(.,'Trade-In')]").get_attribute("href"))328 print(driver.find_element(By.XPATH, "//a[@href='/drive'][contains(.,'Test Drive')]").get_attribute("href"))329 print(driver.find_element(By.XPATH, "//a[@href='/cybertruck'][contains(.,'Cybertruck')]").get_attribute("href"))330 print(driver.find_element(By.XPATH, "//a[@href='/roadster'][contains(.,'Roadster')]").get_attribute("href"))331 print(driver.find_element(By.XPATH, "//a[@href='/semi'][contains(.,'Semi')]").get_attribute("href"))332 print(driver.find_element(By.XPATH, "//a[@href='/charging'][contains(.,'Charging')]").get_attribute("href"))333 print(driver.find_element(By.XPATH, "//a[@href='/powerwall'][contains(.,'Powerwall')]").get_attribute("href"))334 print(driver.find_element(By.XPATH, "//a[@href='/commercial'][contains(.,'Commercial Energy')]").get_attribute("href"))335 print(driver.find_element(By.XPATH, "//a[@href='/utilities'][contains(.,'Utilities')]").get_attribute("href"))336 print(driver.find_element(By.XPATH, "//a[@href='/findus'][contains(.,'Find Us')]").get_attribute("href"))337 print(driver.find_element(By.XPATH, "//a[@href='/support'][contains(.,'Support')]").get_attribute("href"))338 print(driver.find_element(By.XPATH, "//a[@href='https://ir.tesla.com'][contains(.,'Investor Relations')]").get_attribute("href"))339 print(driver.find_element(By.XPATH, "//strong[contains(text(),'United States')]").get_attribute("href"))340 print(driver.find_element(By.XPATH, "//a[@href='/teslaaccount'][contains(.,'Account')]").get_attribute("href"))'''341 # scrolling342 time.sleep(3)343 assert (driver.find_element(By.XPATH, hp.logo_S))344 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)345 time.sleep(3)346 assert (driver.find_element(By.XPATH, hp.logo_Y))347 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)348 time.sleep(3)349 assert (driver.find_element(By.XPATH, hp.logo_3))350 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)351 time.sleep(3)352 assert (driver.find_element(By.XPATH, hp.logo_X))353 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)354 time.sleep(3)355 assert (driver.find_element(By.XPATH, hp.logo_Solar_Panels))356 driver.find_element(By.XPATH, hp.btn_Order_Now).send_keys(Keys.PAGE_DOWN)357 time.sleep(3)358 assert (driver.find_element(By.XPATH, hp.logo_Solar_Roof))359 driver.find_element(By.XPATH, hp.btn_Learn_More).send_keys(Keys.PAGE_DOWN)360 time.sleep(3)361 assert (driver.find_element(By.XPATH, hp.logo_Accessories))362 driver.find_element(By.XPATH, hp.btn_Shop_Now).send_keys(Keys.PAGE_DOWN)363 # assertion footer menu364 assert (driver.find_element(By.XPATH, hp.About).get_attribute("href"))365 assert (driver.find_element(By.XPATH, hp.Legal).get_attribute("href"))366 assert (driver.find_element(By.XPATH, hp.Contact).get_attribute("href"))367 assert (driver.find_element(By.XPATH, hp.Career).get_attribute("href"))368 assert (driver.find_element(By.XPATH, hp.News).get_attribute("href"))369 assert (driver.find_element(By.XPATH, hp.Engage).get_attribute("href"))370 assert (driver.find_element(By.XPATH, hp.Locations).get_attribute("href"))371 def tearDown(self):372 self.driver.quit()373class Firefox2(unittest.TestCase): # 4.Second Unit test for Firefox browser374 def setUp(self):375 desired_cap = {376 'browser': 'firefox',377 'browser_version': 'latest',378 'os': 'Windows',379 'os_version': '10',380 'resolution': '1920x1080',381 'name': 'Bstack-[Python] Chrome Test'382 }383 url = key.mykey1384 desired_cap['acceptSslCerts'] = True385 self.driver = webdriver.Remote(command_executor=url, desired_capabilities=desired_cap)386 # self.driver = webdriver.Chrome() #ÐÑиÑвоили дÑайвеÑÑ Ð·Ð½Ð°Ñение Chrome (иниÑиализаÑоÑ)387 # Methods in UnitTest should start from "test" keyword388 def test_1150x750(self):389 driver = self.driver # ÐÑиÑвоили Ð´Ð»Ñ ÑÑого меÑода driver = self.driver, ÑÑÐ¾Ð±Ñ Ð¾Ð±ÑаÑилÑÑÑ Ðº setUp390 driver.set_window_size(1150, 750)391 driver.get(hp.tesla_url)392 wait = WebDriverWait(driver, 3)393 wait.until(EC.element_to_be_clickable((By.XPATH, hp.tesla_logo)))394 '''driver.get(hp.tesla_url)395 driver.maximize_window()396 time.sleep(2)'''397 driver.find_element(By.XPATH, hp.tesla_logo).click() # click logo and renew page398 # title399 assert 'Electric Cars, Solar & Clean Energy | Tesla' in driver.title400 print(driver.title)401 # description402 print(driver.find_element(By.XPATH, "//head/meta[2]").get_attribute("content"))403 if driver.find_element(By.XPATH, "//head/meta[2]"): # //meta[@name='description']404 print('I found the description')405 driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")406 button = driver.find_element(By.XPATH, hp.Model_S)407 href_data = button.get_attribute('href')408 if href_data is None:409 is_clickable = False410 else:411 print(href_data)412 url_from_attr = driver.find_element(By.XPATH, hp.Model_S).get_attribute("href")413 url_from_attr_raw = "%r" % url_from_attr414 print(" URL from attribute -->> " + url_from_attr)415 print(" Raw string -->> " + url_from_attr_raw)416 menu = driver.find_elements_by_xpath(hp.side_menu)417 map_menu = []418 print(len(menu))419 for x in menu:420 d = {}421 t = x.get_attribute('textContent')422 l = x.get_attribute('href')423 r = requests.get(l)424 d['name'] = t425 d['link'] = l426 d['status code'] = r.status_code427 if r.status_code != 200:428 print(f'Fail!!! - {t}, {l}, Status Code is {r.status_code}')429 else:430 print(f'OK - {t}, {l}')431 map_menu.append(d)432 with open('output_firefox1.json', 'w') as json_file:433 json.dump(map_menu, open('output_firefox1.json', 'w'))434 # assertion header435 assert (driver.find_element(By.XPATH, hp.Model_3).get_attribute("href"))436 assert (driver.find_element(By.XPATH, hp.Model_X).get_attribute("href"))437 assert (driver.find_element(By.XPATH, hp.Model_Y).get_attribute("href"))438 assert (driver.find_element(By.XPATH, hp.Solar_Roof).get_attribute("href"))439 assert (driver.find_element(By.XPATH, hp.Solar_Panels).get_attribute("href"))440 assert (driver.find_element(By.XPATH, hp.Shop).get_attribute("href"))441 assert (driver.find_element(By.XPATH, hp.Account).get_attribute("href"))442 # driver.find_element(By.XPATH, "//span[contains(text(),'Menu')]").click()443 '''444 print(driver.find_element(By.XPATH, "//a[@href='/inventory/new/m3'][contains(.,'Existing Inventory')]").get_attribute("href"))445 print(driver.find_element(By.XPATH, "//a[@href='/inventory/used/m3'][contains(.,'Used Inventory')]").get_attribute("href"))446 print(driver.find_element(By.XPATH, "//a[@href='/tradein'][contains(.,'Trade-In')]").get_attribute("href"))447 print(driver.find_element(By.XPATH, "//a[@href='/drive'][contains(.,'Test Drive')]").get_attribute("href"))448 print(driver.find_element(By.XPATH, "//a[@href='/cybertruck'][contains(.,'Cybertruck')]").get_attribute("href"))449 print(driver.find_element(By.XPATH, "//a[@href='/roadster'][contains(.,'Roadster')]").get_attribute("href"))450 print(driver.find_element(By.XPATH, "//a[@href='/semi'][contains(.,'Semi')]").get_attribute("href"))451 print(driver.find_element(By.XPATH, "//a[@href='/charging'][contains(.,'Charging')]").get_attribute("href"))452 print(driver.find_element(By.XPATH, "//a[@href='/powerwall'][contains(.,'Powerwall')]").get_attribute("href"))453 print(driver.find_element(By.XPATH, "//a[@href='/commercial'][contains(.,'Commercial Energy')]").get_attribute("href"))454 print(driver.find_element(By.XPATH, "//a[@href='/utilities'][contains(.,'Utilities')]").get_attribute("href"))455 print(driver.find_element(By.XPATH, "//a[@href='/findus'][contains(.,'Find Us')]").get_attribute("href"))456 print(driver.find_element(By.XPATH, "//a[@href='/support'][contains(.,'Support')]").get_attribute("href"))457 print(driver.find_element(By.XPATH, "//a[@href='https://ir.tesla.com'][contains(.,'Investor Relations')]").get_attribute("href"))458 print(driver.find_element(By.XPATH, "//strong[contains(text(),'United States')]").get_attribute("href"))459 print(driver.find_element(By.XPATH, "//a[@href='/teslaaccount'][contains(.,'Account')]").get_attribute("href"))'''460 # scrolling461 time.sleep(3)462 assert (driver.find_element(By.XPATH, hp.logo_S))463 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)464 time.sleep(3)465 assert (driver.find_element(By.XPATH, hp.logo_Y))466 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)467 time.sleep(3)468 assert (driver.find_element(By.XPATH, hp.logo_3))469 driver.find_element(By.XPATH, hp.btn_Custom_Order).send_keys(Keys.PAGE_DOWN)470 time.sleep(3)471 assert (driver.find_element(By.XPATH, hp.logo_X))472 driver.find_element(By.XPATH, hp.btn_Existing_Inventory).send_keys(Keys.PAGE_DOWN)473 time.sleep(3)474 assert (driver.find_element(By.XPATH, hp.logo_Solar_Panels))475 driver.find_element(By.XPATH, hp.btn_Order_Now).send_keys(Keys.PAGE_DOWN)476 time.sleep(3)477 assert (driver.find_element(By.XPATH, hp.logo_Solar_Roof))478 driver.find_element(By.XPATH, hp.btn_Learn_More).send_keys(Keys.PAGE_DOWN)479 time.sleep(3)480 assert (driver.find_element(By.XPATH, hp.logo_Accessories))481 driver.find_element(By.XPATH, hp.btn_Shop_Now).send_keys(Keys.PAGE_DOWN)482 # assertion footer menu483 assert (driver.find_element(By.XPATH, hp.About).get_attribute("href"))484 assert (driver.find_element(By.XPATH, hp.Legal).get_attribute("href"))485 assert (driver.find_element(By.XPATH, hp.Contact).get_attribute("href"))486 assert (driver.find_element(By.XPATH, hp.Career).get_attribute("href"))487 assert (driver.find_element(By.XPATH, hp.News).get_attribute("href"))488 assert (driver.find_element(By.XPATH, hp.Engage).get_attribute("href"))489 assert (driver.find_element(By.XPATH, hp.Locations).get_attribute("href"))490 def tearDown(self):491 self.driver.quit()492if __name__ == '__main__':...
__init__.py
Source:__init__.py
...33 META = {}34 METANodes = core.get_all_meta_nodes(active_node)35 for path in METANodes:36 node = METANodes[path]37 META[core.get_attribute(node, 'name')] = node38 children = core.load_children(active_node)39 self.model = {'name': core.get_attribute(active_node, 'name'),40 'metadata': {},41 'constant': [],42 'basicbuilder': {},43 'node': [],44 'geomTransf': [],45 'element': [],46 'analysis_pack': [],47 }48 # Let's categorize each child in the model49 for child in children:50 if core.is_type_of(child, META['MetaData']):51 self.process_metadata(child)52 elif core.is_type_of(child, META['constant']):53 self.process_constant(child)54 elif core.is_type_of(child, META['BasicBuilder']):55 self.process_basicBuilder(child)56 elif core.is_type_of(child, META['node']):57 self.process_node(child)58 elif core.is_type_of(child, META['geomTransf']):59 self.process_geomtransf(child)60 elif core.is_type_of(child, META['element']):61 self.process_element(child)62 elif core.is_type_of(child, META['rayleigh']):63 self.process_rayleigh(child)64 elif core.is_type_of(child, META['analysis_pack']):65 self.process_analysis_pack(child)66 else:67 logger.error("This is not a building block "68 "I am familiar with.\n"69 "Most probably, this is a "70 "documentation composition")71 os_code = self.get_code()72 logger.info(self.get_code())73 self.save_code(os_code)74 if self.config['simulate']:75 self.simulate_model(os_code)76 def process_metadata(self, node):77 model_data = {78 'description': self.core.get_attribute(node, 'analysis_description'),79 'name': self.core.get_attribute(node, 'analysis_name'),80 'type': self.core.get_attribute(node, 'analysis_type'),81 'unit_system': self.core.get_attribute(node, 'unit_system'),82 'author': self.core.get_attribute(node, 'author'),83 'date': self.core.get_attribute(node, 'date'),84 }85 self.model['metadata'] = model_data86 def process_constant(self, node):87 model_data = {88 'name': self.core.get_attribute(node, 'expression'),89 'parameter': self.core.get_attribute(node, 'value'),90 'comment': self.core.get_attribute(node, 'comment'),91 }92 self.model['constant'].append(model_data)93 def process_basicBuilder(self, node):94 model_data = {95 'comment': self.core.get_attribute(node, 'comment'),96 'ndf': self.core.get_attribute(node, 'ndf'),97 'ndm': self.core.get_attribute(node, 'ndm'),98 }99 self.model['basicbuilder'] = model_data100 def process_node(self, node):101 model_data = {102 'comment': self.core.get_attribute(node, 'comment'),103 'coords_dof1': self.core.get_attribute(node, 'coords_dof1'),104 'coords_dof2': self.core.get_attribute(node, 'coords_dof2'),105 'fix_dof1': self.core.get_attribute(node, 'fix_dof1'),106 'fix_dof2': self.core.get_attribute(node, 'fix_dof2'),107 'fix_dof3': self.core.get_attribute(node, 'fix_dof3'),108 'mass_dof1': self.core.get_attribute(node, 'mass_dof1'),109 'mass_dof2': self.core.get_attribute(node, 'mass_dof2'),110 'mass_dof3': self.core.get_attribute(node, 'mass_dof3'),111 'nodeTag': self.core.get_attribute(node, 'nodeTag'),112 }113 self.model['node'].append(model_data)114 def process_geomtransf(self, node):115 model_data = {116 'transfTag': self.core.get_attribute(node, 'transfTag'),117 'transfType': self.core.get_attribute(node, 'name')[11:],118 'comment': self.core.get_attribute(node, 'comment'),119 }120 self.model['geomTransf'].append(model_data)121 def process_element(self, node):122 src = self.core.load_pointer(node, 'src')123 dst = self.core.load_pointer(node, 'dst')124 if self.core.is_type_of(node, self.META['elasticBeamColumn']):125 model_data = {126 'comment': self.core.get_attribute(node, 'comment'),127 'eleType': self.core.get_attribute(node, 'name'),128 'eleTag': self.core.get_attribute(node, 'eleTag'),129 'A': self.core.get_attribute(node, 'A'),130 'E': self.core.get_attribute(node, 'E'),131 'Iz': self.core.get_attribute(node, 'Iz'),132 'cMass': self.core.get_attribute(node, 'cMass'),133 'massDens': self.core.get_attribute(node, 'massDens'),134 'transfTag': self.core.get_attribute(node, 'transfTag'),135 'src': self.core.get_attribute(src, 'nodeTag'),136 'dst': self.core.get_attribute(dst, 'nodeTag'),137 }138 self.model['element'].append(model_data)139 def process_rayleigh(self, node):140 model_data = {141 'comment': self.core.get_attribute(node, 'comment'),142 'a': self.core.get_attribute(node, 'a'),143 'b': self.core.get_attribute(node, 'b'),144 'c': self.core.get_attribute(node, 'c'),145 'd': self.core.get_attribute(node, 'd'),146 }147 self.model['rayleigh'] = model_data148 def process_analysis_pack(self, node):149 children = self.core.load_children(node)150 model_data = {151 'analysis_order': self.core.get_attribute(node, 'analysis_order'),152 'comment': self.core.get_attribute(node, 'comment'),153 }154 for child in children:155 if self.core.is_type_of(child, self.META['loadConst']):156 model_data['loadConst'] = self.process_loadconst(child)157 elif self.core.is_type_of(child, self.META['timeSeries']):158 model_data['timeSeries'] = self.process_timeseries(child)159 elif self.core.is_type_of(child, self.META['pattern']):160 model_data['pattern'] = self.process_pattern(child)161 elif self.core.is_type_of(child, self.META['system']):162 model_data['system'] = self.process_system(child)163 elif self.core.is_type_of(child, self.META['numberer']):164 model_data['numberer'] = self.process_numberer(child)165 elif self.core.is_type_of(child, self.META['constraints']):166 model_data['constraints'] = self.process_constraints(child)167 elif self.core.is_type_of(child, self.META['integrator']):168 model_data['integrator'] = self.process_integrator(child)169 elif self.core.is_type_of(child, self.META['test']):170 model_data['test'] = self.process_test(child)171 elif self.core.is_type_of(child, self.META['algorithm']):172 model_data['algorithm'] = self.process_algorithm(child)173 elif self.core.is_type_of(child, self.META['analysis']):174 model_data['analysis'] = self.process_analysis(child)175 elif self.core.is_type_of(child, self.META['analyze']):176 model_data['analyze'] = self.process_analyze(child)177 elif self.core.is_type_of(child, self.META['recorder']):178 model_data.setdefault('recorder', []).append(self.process_recorder(child))179 else:180 logger.error("This is not a building block "181 "I am familiar with.")182 self.model['analysis_pack'].append(model_data)183 def process_loadconst(self, node):184 model_data = {185 'comment': self.core.get_attribute(node, 'comment'),186 'pseudoTime': self.core.get_attribute(node, 'pseudoTime'),187 }188 return model_data189 def process_timeseries(self, node):190 model_data = {191 'comment': self.core.get_attribute(node, 'comment'),192 'tsType': self.core.get_attribute(node, 'name')[11:],193 'tag': self.core.get_attribute(node, 'tag'),194 }195 if self.core.get_attribute(node, 'name')[11:] == 'Path File':196 model_data['cFactor'] = self.core.get_attribute(node, 'cFactor')197 model_data['dt'] = self.core.get_attribute(node, 'dt')198 model_data['filePath'] = self.core.get_attribute(node, 'filePath')199 model_data['tsType'] = 'Path'200 return model_data201 def process_pattern(self, node):202 children = self.core.load_children(node)203 model_data = {204 'comment': self.core.get_attribute(node, 'comment'),205 'tsType': self.core.get_attribute(node, 'name')[8:],206 'tsTag': self.core.get_attribute(node, 'tsTag'),207 'patternTag': self.core.get_attribute(node, 'patternTag'),208 }209 for child in children:210 if self.core.is_type_of(child, self.META['load element single/multiple']):211 model_data.setdefault('eleLoad', []).append(self.process_loadelement(child))212 elif self.core.is_type_of(child, self.META['load node']):213 model_data.setdefault('nodeLoad', []).append(self.process_loadnode(child))214 if model_data['tsType'] == 'UniformExcitation':215 model_data['dir'] = self.core.get_attribute(node, 'dir')216 return model_data217 def process_loadelement(self, node):218 model_data = {219 'Wy': self.core.get_attribute(node, 'Wy'),220 'eleTag': self.core.get_attribute(node, 'eleTag'),221 }222 return model_data223 def process_loadnode(self, node):224 model_data = {225 'loadvalues': self.core.get_attribute(node, 'loadvalues'),226 'nodeTag': self.core.get_attribute(node, 'nodeTag'),227 }228 return model_data229 def process_system(self, node):230 model_data = {231 'comment': self.core.get_attribute(node, 'comment'),232 'name': self.core.get_attribute(node, 'name')[7:],233 }234 return model_data235 def process_numberer(self, node):236 model_data = {237 'comment': self.core.get_attribute(node, 'comment'),238 'name': self.core.get_attribute(node, 'name')[9:],239 }240 return model_data241 def process_constraints(self, node):242 model_data = {243 'comment': self.core.get_attribute(node, 'comment'),244 'name': self.core.get_attribute(node, 'name')[12:],245 }246 return model_data247 def process_integrator(self, node):248 model_data = {249 'comment': self.core.get_attribute(node, 'comment'),250 'name': self.core.get_attribute(node, 'name')[11:],251 }252 if model_data['name'] == 'LoadControl':253 model_data['lambda'] = self.core.get_attribute(node, 'lambda')254 if model_data['name'] == 'Newmark':255 model_data['beta'] = self.core.get_attribute(node, 'beta')256 model_data['gamma'] = self.core.get_attribute(node, 'gamma')257 return model_data258 def process_test(self, node):259 model_data = {260 'comment': self.core.get_attribute(node, 'comment'),261 'name': self.core.get_attribute(node, 'name')[5:],262 'tol': self.core.get_attribute(node, 'tol'),263 'iter': self.core.get_attribute(node, 'iter'),264 }265 return model_data266 def process_algorithm(self, node):267 model_data = {268 'name': self.core.get_attribute(node, 'name')[10:],269 'comment': self.core.get_attribute(node, 'comment'),270 }271 return model_data272 def process_analysis(self, node):273 model_data = {274 'name': self.core.get_attribute(node, 'name')[9:],275 'comment': self.core.get_attribute(node, 'comment'),276 }277 return model_data278 def process_analyze(self, node):279 model_data = {280 'numIncr': self.core.get_attribute(node, 'numIncr'),281 'comment': self.core.get_attribute(node, 'comment'),282 }283 if self.core.get_attribute(node, 'dT'):284 model_data['dT'] = self.core.get_attribute(node, 'dT')285 return model_data286 def process_recorder(self, node):287 if self.core.is_type_of(node, self.META['recorder Element']):288 model_data = {289 'name': self.core.get_attribute(node, 'name')[9:],290 'file': self.core.get_attribute(node, 'file'),291 'fileName': self.core.get_attribute(node, 'fileName'),292 'ele': self.core.get_attribute(node, 'ele'),293 'respType': self.core.get_attribute(node, 'respType'),294 'comment': self.core.get_attribute(node, 'comment'),295 }296 if self.core.is_type_of(node, self.META['recorder Node']):297 model_data = {298 'name': self.core.get_attribute(node, 'name')[9:],299 'file': self.core.get_attribute(node, 'file'),300 'fileName': self.core.get_attribute(node, 'fileName'),301 'startNode': self.core.get_attribute(node, 'startNode'),302 'endNode': self.core.get_attribute(node, 'endNode'),303 'disp': self.core.get_attribute(node, 'disp'),304 'dof': self.core.get_attribute(node, 'dof'),305 'comment': self.core.get_attribute(node, 'comment'),306 'time': self.core.get_attribute(node, 'time'),307 }308 return model_data309 def get_code(self):310 code_text = '# ' + self.model['name'] + '\n'311 # metadata312 code_text += '# Analysis Name: ' + self.model['metadata']['name'] + '\n'313 code_text += '# Analysis Description: ' + self.model['metadata']['description'] + '\n'314 code_text += '# Analysis Type: ' + self.model['metadata']['type'] + '\n'315 code_text += '#--------\n'316 code_text += '# Author: ' + self.model['metadata']['author'] + '\n'317 code_text += '# Unit System: ' + self.model['metadata']['unit_system'] + '\n'318 code_text += '# Date: ' + self.model['metadata']['date'] + '\n'319 # constants320 code_text += '\n'...
test_derived_props.py
Source:test_derived_props.py
...8889 target.row(0).select()90 target.row(1).select()9192 assert test.find_element("#active_cell").get_attribute("innerHTML") in [93 "None",94 json.dumps([]),95 ]96 assert test.find_element("#start_cell").get_attribute("innerHTML") in [97 "None",98 json.dumps([]),99 ]100 assert test.find_element("#end_cell").get_attribute("innerHTML") in [101 "None",102 json.dumps([]),103 ]104 assert test.find_element("#selected_cells").get_attribute("innerHTML") in [105 "None",106 json.dumps([]),107 ]108 assert test.find_element("#selected_rows").get_attribute("innerHTML") == json.dumps(109 list(range(2))110 )111 assert test.find_element("#selected_row_ids").get_attribute(112 "innerHTML"113 ) == json.dumps(list(range(3000, 3002)))114115 assert test.find_element("#derived_viewport_selected_rows").get_attribute(116 "innerHTML"117 ) == json.dumps(list(range(2)))118 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(119 "innerHTML"120 ) == json.dumps(list(range(3000, 3002)))121 assert test.find_element("#derived_viewport_indices").get_attribute(122 "innerHTML"123 ) == json.dumps(list(range(10)))124 assert test.find_element("#derived_viewport_row_ids").get_attribute(125 "innerHTML"126 ) == json.dumps(list(range(3000, 3010)))127128 assert test.find_element("#derived_virtual_selected_rows").get_attribute(129 "innerHTML"130 ) == json.dumps(list(range(2)))131 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(132 "innerHTML"133 ) == json.dumps(list(range(3000, 3002)))134 assert test.find_element("#derived_virtual_indices").get_attribute(135 "innerHTML"136 ) == json.dumps(list(range(100)))137 assert test.find_element("#derived_virtual_row_ids").get_attribute(138 "innerHTML"139 ) == json.dumps(list(range(3000, 3100)))140 assert test.get_log_errors() == []141142143def test_tdrp002_select_cell(test):144 test.start_server(get_app())145146 target = test.table("table")147148 target.cell(0, 0).click()149150 active = dict(row=0, column=0, column_id=rawDf.columns[0], row_id=3000)151152 time.sleep(1)153154 assert test.find_element("#active_cell").get_attribute("innerHTML") == json.dumps(155 active156 )157 assert test.find_element("#start_cell").get_attribute("innerHTML") == json.dumps(158 active159 )160 assert test.find_element("#end_cell").get_attribute("innerHTML") == json.dumps(161 active162 )163 assert test.find_element("#selected_cells").get_attribute(164 "innerHTML"165 ) == json.dumps([active])166 assert test.find_element("#selected_rows").get_attribute("innerHTML") in [167 "None",168 json.dumps([]),169 ]170 assert test.find_element("#selected_row_ids").get_attribute("innerHTML") in [171 "None",172 json.dumps([]),173 ]174175 assert test.find_element("#derived_viewport_selected_rows").get_attribute(176 "innerHTML"177 ) in ["None", json.dumps([])]178 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(179 "innerHTML"180 ) in ["None", json.dumps([])]181 assert test.find_element("#derived_viewport_indices").get_attribute(182 "innerHTML"183 ) == json.dumps(list(range(10)))184 assert test.find_element("#derived_viewport_row_ids").get_attribute(185 "innerHTML"186 ) == json.dumps(list(range(3000, 3010)))187188 assert test.find_element("#derived_virtual_selected_rows").get_attribute(189 "innerHTML"190 ) in ["None", json.dumps([])]191 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(192 "innerHTML"193 ) in ["None", json.dumps([])]194 assert test.find_element("#derived_virtual_indices").get_attribute(195 "innerHTML"196 ) == json.dumps(list(range(100)))197 assert test.find_element("#derived_virtual_row_ids").get_attribute(198 "innerHTML"199 ) == json.dumps(list(range(3000, 3100)))200 assert test.get_log_errors() == []201202203def test_tdrp003_select_cells(test):204 test.start_server(get_app())205206 target = test.table("table")207208 target.cell(0, 0).click()209 with test.hold(Keys.SHIFT):210 test.send_keys(Keys.DOWN + Keys.DOWN + Keys.RIGHT + Keys.RIGHT)211212 active = dict(row=0, column=0, column_id=rawDf.columns[0], row_id=3000)213214 selected = []215 for row in range(3):216 for col in range(3):217 selected.append(218 dict(219 row=row, column=col, column_id=rawDf.columns[col], row_id=row + 3000220 )221 )222223 assert test.find_element("#active_cell").get_attribute("innerHTML") == json.dumps(224 active225 )226 assert test.find_element("#start_cell").get_attribute("innerHTML") == json.dumps(227 selected[0]228 )229 assert test.find_element("#end_cell").get_attribute("innerHTML") == json.dumps(230 selected[-1]231 )232 assert test.find_element("#selected_cells").get_attribute(233 "innerHTML"234 ) == json.dumps(selected)235 assert test.find_element("#selected_rows").get_attribute("innerHTML") in [236 "None",237 json.dumps([]),238 ]239 assert test.find_element("#selected_row_ids").get_attribute("innerHTML") in [240 "None",241 json.dumps([]),242 ]243244 assert test.find_element("#derived_viewport_selected_rows").get_attribute(245 "innerHTML"246 ) in ["None", json.dumps([])]247 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(248 "innerHTML"249 ) in ["None", json.dumps([])]250 assert test.find_element("#derived_viewport_indices").get_attribute(251 "innerHTML"252 ) == json.dumps(list(range(10)))253 assert test.find_element("#derived_viewport_row_ids").get_attribute(254 "innerHTML"255 ) == json.dumps(list(range(3000, 3010)))256257 assert test.find_element("#derived_virtual_selected_rows").get_attribute(258 "innerHTML"259 ) in ["None", json.dumps([])]260 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(261 "innerHTML"262 ) in ["None", json.dumps([])]263 assert test.find_element("#derived_virtual_indices").get_attribute(264 "innerHTML"265 ) == json.dumps(list(range(100)))266 assert test.find_element("#derived_virtual_row_ids").get_attribute(267 "innerHTML"268 ) == json.dumps(list(range(3000, 3100)))269270 # reduce selection271 with test.hold(Keys.SHIFT):272 test.send_keys(Keys.UP + Keys.LEFT)273274 selected = []275 for row in range(2):276 for col in range(2):277 selected.append(278 dict(279 row=row, column=col, column_id=rawDf.columns[col], row_id=row + 3000280 )281 )282283 assert test.find_element("#active_cell").get_attribute("innerHTML") == json.dumps(284 active285 )286 assert test.find_element("#start_cell").get_attribute("innerHTML") == json.dumps(287 selected[0]288 )289 assert test.find_element("#end_cell").get_attribute("innerHTML") == json.dumps(290 selected[-1]291 )292 assert test.find_element("#selected_cells").get_attribute(293 "innerHTML"294 ) == json.dumps(selected)295 assert test.find_element("#selected_rows").get_attribute("innerHTML") in [296 "None",297 json.dumps([]),298 ]299 assert test.find_element("#selected_row_ids").get_attribute("innerHTML") in [300 "None",301 json.dumps([]),302 ]303304 assert test.find_element("#derived_viewport_selected_rows").get_attribute(305 "innerHTML"306 ) in ["None", json.dumps([])]307 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(308 "innerHTML"309 ) in ["None", json.dumps([])]310 assert test.find_element("#derived_viewport_indices").get_attribute(311 "innerHTML"312 ) == json.dumps(list(range(10)))313 assert test.find_element("#derived_viewport_row_ids").get_attribute(314 "innerHTML"315 ) == json.dumps(list(range(3000, 3010)))316317 assert test.find_element("#derived_virtual_selected_rows").get_attribute(318 "innerHTML"319 ) in ["None", json.dumps([])]320 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(321 "innerHTML"322 ) in ["None", json.dumps([])]323 assert test.find_element("#derived_virtual_indices").get_attribute(324 "innerHTML"325 ) == json.dumps(list(range(100)))326 assert test.find_element("#derived_virtual_row_ids").get_attribute(327 "innerHTML"328 ) == json.dumps(list(range(3000, 3100)))329 assert test.get_log_errors() == []330331332def test_tdrp004_navigate_selected_cells(test):333 test.start_server(get_app())334335 target = test.table("table")336337 target.cell(0, 0).click()338 with test.hold(Keys.SHIFT):339 test.send_keys(Keys.DOWN + Keys.DOWN + Keys.RIGHT + Keys.RIGHT)340341 selected = []342 for row in range(3):343 for col in range(3):344 selected.append(345 dict(346 row=row, column=col, column_id=rawDf.columns[col], row_id=row + 3000347 )348 )349350 for row in range(3):351 for col in range(3):352 # active = dict(353 # row=row, column=col, column_id=rawDf.columns[col], row_id=row + 3000354 # )355356 # assert test.find_element("#active_cell").get_attribute(357 # "innerHTML"358 # ) == json.dumps(active)359 assert test.find_element("#start_cell").get_attribute(360 "innerHTML"361 ) == json.dumps(selected[0])362 assert test.find_element("#end_cell").get_attribute(363 "innerHTML"364 ) == json.dumps(selected[-1])365 assert test.find_element("#selected_cells").get_attribute(366 "innerHTML"367 ) == json.dumps(selected)368 assert test.find_element("#selected_rows").get_attribute("innerHTML") in [369 "None",370 json.dumps([]),371 ]372 assert test.find_element("#selected_row_ids").get_attribute(373 "innerHTML"374 ) in ["None", json.dumps([])]375376 assert test.find_element("#derived_viewport_selected_rows").get_attribute(377 "innerHTML"378 ) in ["None", json.dumps([])]379 assert test.find_element(380 "#derived_viewport_selected_row_ids"381 ).get_attribute("innerHTML") in ["None", json.dumps([])]382 assert test.find_element("#derived_viewport_indices").get_attribute(383 "innerHTML"384 ) == json.dumps(list(range(10)))385 assert test.find_element("#derived_viewport_row_ids").get_attribute(386 "innerHTML"387 ) == json.dumps(list(range(3000, 3010)))388389 assert test.find_element("#derived_virtual_selected_rows").get_attribute(390 "innerHTML"391 ) in ["None", json.dumps([])]392 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(393 "innerHTML"394 ) in ["None", json.dumps([])]395 assert test.find_element("#derived_virtual_indices").get_attribute(396 "innerHTML"397 ) == json.dumps(list(range(100)))398 assert test.find_element("#derived_virtual_row_ids").get_attribute(399 "innerHTML"400 ) == json.dumps(list(range(3000, 3100)))401402 test.send_keys(Keys.TAB)403404 assert test.get_log_errors() == []405406407def test_tdrp005_filtered_and_sorted_row_select(test):408 test.start_server(get_app())409410 target = test.table("table")411412 target.row(0).select()413 target.row(1).select()414 target.row(2).select()415416 assert test.find_element("#active_cell").get_attribute("innerHTML") in [417 "None",418 json.dumps([]),419 ]420 assert test.find_element("#start_cell").get_attribute("innerHTML") in [421 "None",422 json.dumps([]),423 ]424 assert test.find_element("#end_cell").get_attribute("innerHTML") in [425 "None",426 json.dumps([]),427 ]428 assert test.find_element("#selected_cells").get_attribute("innerHTML") in [429 "None",430 json.dumps([]),431 ]432 assert test.find_element("#selected_rows").get_attribute("innerHTML") == json.dumps(433 list(range(3))434 )435 assert test.find_element("#selected_row_ids").get_attribute(436 "innerHTML"437 ) == json.dumps(list(range(3000, 3003)))438439 assert test.find_element("#derived_viewport_selected_rows").get_attribute(440 "innerHTML"441 ) == json.dumps(list(range(3)))442 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(443 "innerHTML"444 ) == json.dumps(list(range(3000, 3003)))445 assert test.find_element("#derived_viewport_indices").get_attribute(446 "innerHTML"447 ) == json.dumps(list(range(10)))448 assert test.find_element("#derived_viewport_row_ids").get_attribute(449 "innerHTML"450 ) == json.dumps(list(range(3000, 3010)))451452 assert test.find_element("#derived_virtual_selected_rows").get_attribute(453 "innerHTML"454 ) == json.dumps(list(range(3)))455 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(456 "innerHTML"457 ) == json.dumps(list(range(3000, 3003)))458 assert test.find_element("#derived_virtual_indices").get_attribute(459 "innerHTML"460 ) == json.dumps(list(range(100)))461 assert test.find_element("#derived_virtual_row_ids").get_attribute(462 "innerHTML"463 ) == json.dumps(list(range(3000, 3100)))464465 target.column(0).filter_value("is even")466467 assert test.find_element("#active_cell").get_attribute("innerHTML") in [468 "None",469 json.dumps([]),470 ]471 assert test.find_element("#start_cell").get_attribute("innerHTML") in [472 "None",473 json.dumps([]),474 ]475 assert test.find_element("#end_cell").get_attribute("innerHTML") in [476 "None",477 json.dumps([]),478 ]479 assert test.find_element("#selected_cells").get_attribute("innerHTML") in [480 "None",481 json.dumps([]),482 ]483 assert test.find_element("#selected_rows").get_attribute("innerHTML") == json.dumps(484 list(range(3))485 )486 assert test.find_element("#selected_row_ids").get_attribute(487 "innerHTML"488 ) == json.dumps(list(range(3000, 3003)))489490 assert test.find_element("#derived_viewport_selected_rows").get_attribute(491 "innerHTML"492 ) == json.dumps(list(range(0, 2)))493 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(494 "innerHTML"495 ) == json.dumps(list(range(3000, 3003, 2)))496 assert test.find_element("#derived_viewport_indices").get_attribute(497 "innerHTML"498 ) == json.dumps(list(range(0, 20, 2)))499 assert test.find_element("#derived_viewport_row_ids").get_attribute(500 "innerHTML"501 ) == json.dumps(list(range(3000, 3020, 2)))502503 assert test.find_element("#derived_virtual_selected_rows").get_attribute(504 "innerHTML"505 ) == json.dumps(list(range(0, 2)))506 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(507 "innerHTML"508 ) == json.dumps(list(range(3000, 3003, 2)))509 assert test.find_element("#derived_virtual_indices").get_attribute(510 "innerHTML"511 ) == json.dumps(list(range(0, 100, 2)))512 assert test.find_element("#derived_virtual_row_ids").get_attribute(513 "innerHTML"514 ) == json.dumps(list(range(3000, 3100, 2)))515516 target.column(rawDf.columns[0]).sort() # None -> ASC517 target.column(rawDf.columns[0]).sort() # ASC -> DESC518519 assert test.find_element("#active_cell").get_attribute("innerHTML") in [520 "None",521 json.dumps([]),522 ]523 assert test.find_element("#start_cell").get_attribute("innerHTML") in [524 "None",525 json.dumps([]),526 ]527 assert test.find_element("#end_cell").get_attribute("innerHTML") in [528 "None",529 json.dumps([]),530 ]531 assert test.find_element("#selected_cells").get_attribute("innerHTML") in [532 "None",533 json.dumps([]),534 ]535 assert test.find_element("#selected_rows").get_attribute("innerHTML") == json.dumps(536 list(range(3))537 )538 assert test.find_element("#selected_row_ids").get_attribute(539 "innerHTML"540 ) == json.dumps(list(range(3000, 3003)))541542 assert test.find_element("#derived_viewport_selected_rows").get_attribute(543 "innerHTML"544 ) in ["None", json.dumps([])]545 assert test.find_element("#derived_viewport_selected_row_ids").get_attribute(546 "innerHTML"547 ) in ["None", json.dumps([])]548 assert test.find_element("#derived_viewport_indices").get_attribute(549 "innerHTML"550 ) == json.dumps(list(range(80, 100, 2))[::-1])551 assert test.find_element("#derived_viewport_row_ids").get_attribute(552 "innerHTML"553 ) == json.dumps(list(range(3080, 3100, 2))[::-1])554555 assert test.find_element("#derived_virtual_selected_rows").get_attribute(556 "innerHTML"557 ) == json.dumps(list(range(48, 50))[::-1])558 assert test.find_element("#derived_virtual_selected_row_ids").get_attribute(559 "innerHTML"560 ) == json.dumps(list(range(3000, 3003, 2)))561 assert test.find_element("#derived_virtual_indices").get_attribute(562 "innerHTML"563 ) == json.dumps(list(range(0, 100, 2))[::-1])564 assert test.find_element("#derived_virtual_row_ids").get_attribute(565 "innerHTML"566 ) == json.dumps(list(range(3000, 3100, 2))[::-1])
...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!