Best Python code snippet using pom_python
test_esf_xqxq.py
Source:test_esf_xqxq.py  
...102        ç¹å»åºç¡ä¿¡æ¯103        :return:104        """105        # 页颿»å¨å°ååºç¡è¯¦æ
106        self.page.scroll_to(595, 500)107        delay(1)108        e_base = self.page.element_is_exists('view[class="baseInfo"]')109        if e_base == True:110           self.page.get_element('view[class="baseInfo"]').tap()111        else:112            print("没æåºç¡ä¿¡æ¯æ¨¡å")113    def test_goto_zbpt(self):114        """115        ç¹å»å¨è¾¹é
å¥116        :return:117        """118        self.page.scroll_to(750, 500)119        delay(1)120        e_map = self.page.element_is_exists('view[class="pr map"][data-type="0"]')121        if e_map == True:122            self.page.get_element('view[class="pr map"][data-type="0"]').tap()123        else:124            print("没æå¨è¾¹é
奿¨¡å")125    def test_goto_xqhx(self):126        """127        ç¹å»å°åºæ·å128        :return:129        """130        self.page.scroll_to(980, 500)131        delay(1)132        houseTypes = self.page.element_is_exists('view[class="houseTypes"]')133        if houseTypes == True:134            self.page.get_element('view[class="houseTypes"]').tap()135        else:136            print("没æå°åºæ·å模å")137    def test_goto_xqhximg(self):138        """139        ç¹å»å°åºæ·åå¾ç140        :return:141        """142        self.page.scroll_to(900, 500)143        delay(1)144        house_img = self.page.element_is_exists('view[class="typeImg"]')145        if house_img == True:146            #img = self.page.get_element('//view/view[7]/scroll-view/view/view')147            imgs = self.page.get_elements('view[class="typeImg"]')148            imgs[0].tap()149        else:150            print("没æå°åºæ·å模å")151    def test_goto_xqhxmsg(self):152        """153        ç¹å»å°åºæ·å-å¨è¯¢å¨å®154        :return:155        """156        self.page.scroll_to(900, 500)157        delay(1)158        house_msg = self.page.element_is_exists('view[class="typeMsg"]')159        if house_msg == True:160            msg = self.page.get_element('//view[@class="typeMsg"]/view[@class="msg"]')161            msg.tap()162        else:163            print("没æå°åºæ·å模å")164    def test_goto_housecomment(self):165        """166        ç¹å»å°åºè¯è®º-å
¨é¨è¯è®º167        :return:168        """169        self.page.scroll_to(1180, 500)170        delay(1)171        house_com = self.page.element_is_exists('text', inner_text="å
¨é¨è¯è®º")172        if house_com == True:173            comment = self.page.get_element('text', inner_text="å
¨é¨è¯è®º")174            comment.tap()175        else:176            print("没æå°åºè¯è®ºæ¨¡å")177    def test_goto_comxq(self):178        """179        ç¹å»å°åºè¯è®º-å
¨é¨è¯è®º180        :return:181        """182        self.page.scroll_to(1350, 500)183        delay(1)184        comxq = self.page.element_is_exists('view[class="commentItem"]')185        if comxq == True:186            xq = self.page.get_elements('view[class="commentItem"]')187            xq[0].tap()188        else:189            print("没æå°åºè¯è®ºæ¨¡å")190    def test_goto_plimg(self):191        """192        ç¹å»è¯è®ºå¾ç193        :return:194        """195        self.page.scroll_to(1400, 500)196        delay(1)197        plcom = self.page.element_is_exists('view[class="commentItem"]')198        if plcom == True:199            plimg = self.page.get_elements('//view[@class="commentItem"][1]//view[@class="flex pr commentImages"]/view')200            if len(plimg) > 0:201                plimg[0].tap()202            else:203                print("没æè¯è®ºå¾ç")204        else:205            print("没æè¯è®º")206    def test_goto_pldz(self):207        """208        è¯è®ºç¹èµ209        :return:210        """211        self.page.scroll_to(1400, 500)212        delay(1)213        pldz = self.page.element_is_exists('view[class="center"][data-index="0"][data-level="1"]')214        if pldz == True:215            dz = self.page.get_elements('view[class="center"][data-index="0"][data-level="1"]')216            dz[0].tap()217        else:218            print("没æè¯è®º")219    def test_goto_qxdz(self):220        """221        åæ¶ç¹èµ222        :return:223        """224        self.page.scroll_to(1400, 500)225        delay(1)226        #æç¹é®é¢227        qxdz = self.page.element_is_exists('view[class="center like"][data-index="0"][data-level="1"]')228        if qxdz == True:229            qx = self.page.get_elements('view[class="center like"][data-index="0"][data-level="1"]')230            qx[0].tap()231        else:232            print("没æç¹èµ")233    def test_goto_wypl(self):234        """235        ç¹å»æè¦è¯è®º236        :return:237        """238        self.page.scroll_to(1400, 500)239        delay(1)240        e = self.page.get_element('view[class="center iWant"]')241        e.tap()242    def test_goto_xqzj(self):243        """244        ç¹å»å°åºä¸å®¶245        :return:246        """247        self.page.scroll_to(1490, 500)248        delay(1)249        elms = self.page.get_elements('view[class="between expert"]')250        if len(elms) > 0:251            elms[0].tap()252        else:253            print("没æå°åºä¸å®¶")254    def test_goto_zjim(self):255        """256        ç¹å»å°åºä¸å®¶im257        :return:258        """259        self.page.scroll_to(1490, 500)260        delay(1)261        elms = self.page.get_elements('view[class="msg"]')262        if len(elms) > 0:263            elms[0].tap()264        else:265            print("没æå°åºä¸å®¶")266    def test_goto_zjtel(self):267        """268        ç¹å»å°åºä¸å®¶tel269        :return:270        """271        self.page.scroll_to(1490, 500)272        delay(1)273        elms = self.page.get_elements('view[class="tel"]')274        if len(elms) > 0:275            elms[0].tap()276        else:277            print("没æå°åºä¸å®¶")278    def test_goto_housetab(self):279        """280        å¨å®æ¿æºåå¨ç§æ¿æºtab忢281        :return:282        """283        self.page.scroll_to(1700, 500)284        delay(1)285        e = self.page.get_element('view[class="pr typeI"][data-type="2"]')286        e.tap()287        delay(2)288        e = self.page.get_element('view[class="pr typeI"][data-type="1"]')289        e.tap()290    def test_goto_selltab(self):291        """292        å¨å®æ¿æºtab293        :return:294        """295        self.page.scroll_to(1700, 500)296        delay(1)297        selltab = self.page.element_is_exists('view[class="pr typeI active"][data-type="1"]')298        if selltab == True:299            # å
è·åææitem300            elm_items = self.page.get_elements('view[class="item"]')301            print(len(elm_items))302            # 第ä¸ä¸ªitem303            elm_first_item = elm_items[0]304            # ç¹å»305            elms = elm_first_item.get_element('sell_item').get_elements('view')306            elms[0].tap()307        else:308            print(0)309    def test_goto_renttab(self):310        """311        å¨ç§æ¿æºtab312        :return:313        """314        self.page.scroll_to(1700, 500)315        delay(1)316        e = self.page.get_element('view[class="pr typeI"][data-type="2"]')317        e.tap()318        delay(2)319        renttab = self.page.element_is_exists('view[class="pr typeI active"][data-type="2"]')320        if renttab == True:321            # å
è·åææitem322            elm_items = self.page.get_elements('view[class="item"]')323            # 第ä¸ä¸ªitem324            elm_first_item = elm_items[0]325            # ç¹å»326            elms = elm_first_item.get_element('rent_item').get_elements('view')327            elms[0].tap()328        else:329            print(0)330    def test_goto_zbxq(self):331        """332        å¨è¾¹å°åº333        :return:334        """335        self.page.scroll_to(2000, 500)336        delay(1)337        view_zbxq = self.page.element_is_exists('view[class="villageList"]')338        if view_zbxq == True:339            # å
è·åææitem340            elm_items = self.page.get_elements('//view[@class="villageList"]/view[@class="item"]')341            print(len(elm_items))342            # 第ä¸ä¸ªitem343            elm_first_item = elm_items[0]344            # ç¹å»345            elms = elm_first_item.get_element('villageitem').get_elements('view')346            print(len(elms))347            elms[0].tap()348        else:349            print("没æå¨è¾¹å°åº")...test_date_field.py
Source:test_date_field.py  
...15    menu3 = 'æ¥æéæ©æ¡'  #主页æå¼èåæ¶ä½¿ç¨16     17    def test_case_imited(self):18        '''éå¶_å·æ°_é计ç®'''19#         self.scroll_to('460')20        #time.sleep(0.5)21        state_date = 'å¼å§æ¥æ'22        comp = DateFieldPage(self.driver, state_date)23        #ç¹å»æ¥æç¡®è®¤æé®     24        today =  datetime.today().strftime('%Y-%m-%d')25        yesterday =(datetime.today() + timedelta(-1)).strftime('%Y-%m-%d')26         27        28        start_time = comp.get_now_date(today)  29        self.assertEqual(today, start_time, msg=state_date + 'æ£éªä¸éè¿')30        end_date = 'ç»ææ¥æ'31        comp = DateFieldPage(self.driver, end_date)32        #ç»ææ¶é´åªè½éæ©å¼å§æ¶é´ä¹åæ¯æ°æ®ï¼æä»¥å¼å§æ¶é´ä¹åçæ¶é´ä¸ºday disabledï¼å¼å§ä¹åæ¯day active33        todayStatus = comp.get_end_date_status(end_date,today)34        self.assertIn("day active", todayStatus, msg=end_date + 'æ£éªä¸éè¿')       35        yesterdayStatus = comp.get_end_date_status(end_date,yesterday)     36        self.assertIn("day disabled", yesterdayStatus, msg=end_date + 'æ£éªä¸éè¿')37     38    def test_type_case(self):39        '''ç±»å'''40#         self.scroll_to('0')41        name = 'æ¥æéæ©æ¡_åç§°'42        comp = DateFieldPage(self.driver, name)43        self.assertEqual('text', comp.get_attr('type'), msg=name + 'æ£éªä¸éè¿')44        self.assertEqual('form-control Wdate', comp.get_attr('class'), msg=name + 'æ£éªä¸éè¿')45        self.assertEqual('DateField', comp.get_attr('fieldtype'), msg=name + 'æ£éªä¸éè¿')46 47    def test_readonly_case(self):48        '''æ¾ç¤ºåªè¯»åæ¡ä»¶åªè¯»'''49#         self.scroll_to('0')50        name = 'æ¥æéæ©æ¡_æ¾ç¤ºåªè¯»'51        comp = DateFieldPage(self.driver, name)52        self.assertTrue(comp.readonly_test(), msg=name + 'æ£éªä¸éè¿')53         54#         self.scroll_to('800')55        name = 'æ¥æéæ©æ¡_åªè¯»æ¡ä»¶'56        comp = DateFieldPage(self.driver, name)57        self.assertTrue(comp.readonly_test(), msg=name + 'æ£éªä¸éè¿')58         59    def test_hide_case(self):60        '''æ¾ç¤ºéè忡件éè'''61#         self.scroll_to('0')62        name = 'æ¥æéæ©æ¡_æ¾ç¤ºéè'63        comp = DateFieldPage(self.driver, name)64        self.assertEqual('hidden', comp.get_attr('type'), msg=name + 'æ£éªä¸éè¿')65         66         67         68    def test_only_value_case(self):69        '''åªè¯»æ¶ä»
æ¾ç¤ºå¼'''70        self.scroll_to('0')71        name = 'æ¥æéæ©æ¡_åªè¯»æ¶ä»
æ¾ç¤ºå¼'72        comp = DateFieldPage(self.driver, name)73        self.assertTrue(comp.only_value(), msg=name + 'æ£éªä¸éè¿')74 75    def test_desription_case(self):76        '''æè¿°'''77        self.scroll_to('550')78        name = 'æ¥æéæ©æ¡_æè¿°'79        comp = DateFieldPage(self.driver, name)80        self.assertEqual('æ¥æéæ©æ¡_æè¿°', comp.get_attr('discript'), msg=name + 'æ£éªä¸éè¿')81 82    def test_value_case(self):83        '''å¼'''84        self.scroll_to('550')85        name = 'æ¥æéæ©æ¡_å¼èæ¬'86        comp = DateFieldPage(self.driver, name)87        self.assertEqual(datetime.today().strftime('%Y-%m-%d'), comp.get_attr('value'), msg=name + 'æ£éªä¸éè¿')88 89 90    def test_not_null_case(self):91        '''é空校éª'''92        self.scroll_to('550')93        name = 'æ¥æéæ©æ¡_é空校éª'94        comp = DateFieldPage(self.driver, name)95        self.assertIn("'æ¥æéæ©æ¡_é空校éª'å¿
须填å", comp.set_val_save_get_msg(''), msg=name + 'æ£éªä¸éè¿')96         97    def test_show_when_hide_case(self):98        name = 'æ¥æéæ©æ¡_éèæ¶æ¾ç¤ºå¼'99        comp = DateFieldPage(self.driver, name)100        comp.from_scroll_to('600')101        self.assertEqual('hidden', comp.get_attr('type'), msg=name + 'æ£éªä¸éè¿')102        self.assertIn("æ§ä»¶å·²éè",comp.get_curpage_span(), msg=name + 'æ£éªä¸éè¿')103 104    def test_format_case(self):105        '''æ¾ç¤ºåªè¯»åæ¡ä»¶åªè¯»'''106        self.scroll_to('0')107        name = 'æ¥æéæ©æ¡_æ ¼å¼å¹´'108        comp = DateFieldPage(self.driver, name)109        self.assertEqual('yyyy',comp.get_attr('datefmt'), msg=name + 'æ£éªä¸éè¿')110 111        name = 'æ¥æéæ©æ¡_æ ¼å¼å¹´æ'112        comp = DateFieldPage(self.driver, name)113        self.assertEqual('yyyy-MM-dd',comp.get_attr('datefmt'), msg=name + 'æ£éªä¸éè¿')     114         115        name = 'æ¥æéæ©æ¡_æ ¼å¼å¹´å°ç§'116        comp = DateFieldPage(self.driver, name)117        self.assertEqual('yyyy-MM-dd HH:mm:ss',comp.get_attr('datefmt'), msg=name + 'æ£éªä¸éè¿')   118         119        name = 'æ¥æéæ©æ¡_æ ¼å¼æ¶åç§'120        comp = DateFieldPage(self.driver, name)121        self.assertEqual('HH:mm:ss',comp.get_attr('datefmt'), msg=name + 'æ£éªä¸éè¿') 122    #def test_print_hide_case(self):123    #         '''æå°æ¶éèæ¡ä»¶'''124    #         self.scroll_to('1000')125    #         name = 'æ¥æéæ©æ¡_æå°æ¶éèæ¡ä»¶'126    #         comp = DateFieldPage(self.driver, name)127    #         self.assertIsNone(comp.find_element_by_css_selector('input[name="'+name+'"]'), msg=name + 'æ£éªä¸éè¿')128    #         129    #     def test_show_when_print_case(self):130    #         '''æå°éèæ¶æ¾ç¤ºå¼'''131    #         self.scroll_to('1000')132    #         name = 'æ¥æéæ©æ¡_æå°éèæ¶æ¾ç¤ºå¼'133    #         comp = DateFieldPage(self.driver, name)134    #         self.assertEqual("æå°éèæ¶æ¾ç¤ºå¼", comp.get_text_by_css_selector('#toAll p'), msg=name + 'æ£éªä¸éè¿')135              136          137        138    def init(self):139        self.test_case_imited()140        '''ç±»åãåªè¯»ãéè屿§æµè¯'''141        self.test_type_case()142        self.test_readonly_case()       143        self.test_hide_case()144        self.test_only_value_case()145        self.test_desription_case()...document_structure_page.py
Source:document_structure_page.py  
1#!/usr/bin/env python32# coding: utf-83# Copyright (C) 2017, 2018 Robert Griesel4# This program is free software: you can redistribute it and/or modify5# it under the terms of the GNU General Public License as published by6# the Free Software Foundation, either version 3 of the License, or7# (at your option) any later version.8# 9# This program is distributed in the hope that it will be useful,10# but WITHOUT ANY WARRANTY; without even the implied warranty of11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12# GNU General Public License for more details.13# 14# You should have received a copy of the GNU General Public License15# along with this program. If not, see <http://www.gnu.org/licenses/>16import gi17gi.require_version('Gtk', '3.0')18from gi.repository import Gtk19from gi.repository import GObject20import time21class DocumentStructurePage(Gtk.Overlay):22    def __init__(self):23        Gtk.Overlay.__init__(self)24        self.labels = dict()25        self.vbox = Gtk.VBox()26        self.content_vbox = Gtk.VBox()27        self.scroll_to = None28        self.add_buttons()29        self.add_scrolled_window()30        self.show_all()31        self.vbox.connect('size-allocate', self.on_scroll_or_resize)32        self.scrolled_window.get_vadjustment().connect('value-changed', self.on_scroll_or_resize)33        self.vbox.connect('realize', self.on_scroll_or_resize)34        self.next_button.connect('clicked', self.on_next_button_clicked)35        self.prev_button.connect('clicked', self.on_prev_button_clicked)36    def add_content_widget(self, name, widget):37        self.content_vbox.pack_start(widget, False, False, 0)38    def add_label(self, name, text):39        label_inline = Gtk.Label(text)40        label_inline.set_xalign(0)41        label_inline.get_style_context().add_class('headline')42        self.content_vbox.pack_start(label_inline, False, False, 0)43        label_overlay = Gtk.Label(text)44        label_overlay.set_xalign(0)45        label_overlay.set_halign(Gtk.Align.START)46        label_overlay.set_valign(Gtk.Align.START)47        label_overlay.set_size_request(148, -1)48        label_overlay.get_style_context().add_class('overlay')49        self.add_overlay(label_overlay)50        self.set_overlay_pass_through(label_overlay, True)51        self.labels[name] = {'inline': label_inline, 'overlay': label_overlay}52    def add_buttons(self):53        self.tabs_box = Gtk.HBox()54        self.tabs_box.get_style_context().add_class('tabs-box')55        self.tabs_box.pack_start(Gtk.Label('Files'), False, False, 0)56        self.vbox.pack_start(self.tabs_box, False, False, 0)57        self.tabs = Gtk.Toolbar()58        self.tabs.set_style(Gtk.ToolbarStyle.ICONS)59        self.tabs.set_orientation(Gtk.Orientation.HORIZONTAL)60        self.tabs.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR)61        self.tabs_box.pack_end(self.tabs, False, False, 0)62        self.prev_button = Gtk.ToolButton()63        self.prev_button.set_icon_name('go-up-symbolic')64        self.prev_button.set_focus_on_click(False)65        self.prev_button.set_tooltip_text(_('Back'))66        self.tabs.insert(self.prev_button, -1)67        self.next_button = Gtk.ToolButton()68        self.next_button.set_icon_name('go-down-symbolic')69        self.next_button.set_focus_on_click(False)70        self.next_button.set_tooltip_text(_('Forward'))71        self.tabs.insert(self.next_button, -1)72    def add_scrolled_window(self):73        self.scrolled_window = Gtk.ScrolledWindow()74        self.scrolled_window.add(self.content_vbox)75        self.vbox.pack_start(self.scrolled_window, True, True, 0)76        self.add(self.vbox)77    def on_scroll_or_resize(self, *args):78        label_offsets = self.get_label_offsets()79        scrolling_offset = self.scrolled_window.get_vadjustment().get_value()80        self.prev_button.set_sensitive(scrolling_offset != 0)81        self.next_button.set_sensitive(scrolling_offset < label_offsets[-1] and scrolling_offset < self.content_vbox.get_allocated_height() - self.scrolled_window.get_allocated_height())82        self.update_labels()83    def update_labels(self):84        tabs_height = self.tabs_box.get_allocated_height()85        scrolling_offset = self.scrolled_window.get_vadjustment().get_value()86        self.tabs_box.get_style_context().remove_class('no-border')87        for label_name, label_offset in zip(self.labels, self.get_label_offsets()):88            margin_top = max(0, label_offset - int(scrolling_offset))89            self.labels[label_name]['overlay'].set_margin_top(margin_top)90            if margin_top > 0 and margin_top <= tabs_height:91                self.tabs_box.get_style_context().add_class('no-border')92    def on_next_button_clicked(self, button):93        scrolling_offset = self.scrolled_window.get_vadjustment().get_value()94        for label_offset in self.get_label_offsets():95            if scrolling_offset < label_offset:96                self.scroll_view(label_offset)97                break98    def on_prev_button_clicked(self, button):99        scrolling_offset = self.scrolled_window.get_vadjustment().get_value()100        for label_offset in reversed([0] + self.get_label_offsets()):101            if scrolling_offset > label_offset:102                self.scroll_view(label_offset)103                break104    def get_label_offsets(self):105        offsets = list()106        offset = self.tabs_box.get_allocated_height()107        labels = [label['inline'] for label in self.labels.values()]108        for child in self.content_vbox.get_children():109            if child in labels:110                offsets.append(offset)111            if child.is_visible():112                offset += child.get_allocated_height()113        return offsets114    def scroll_view(self, position, duration=0.2):115        adjustment = self.scrolled_window.get_vadjustment()116        self.scroll_to = {'position_start': adjustment.get_value(), 'position_end': position, 'time_start': time.time(), 'duration': duration}117        self.scrolled_window.set_kinetic_scrolling(False)118        GObject.timeout_add(15, self.do_scroll)119    def do_scroll(self):120        if self.scroll_to != None:121            adjustment = self.scrolled_window.get_vadjustment()122            time_elapsed = time.time() - self.scroll_to['time_start']123            if self.scroll_to['duration'] == 0:124                time_elapsed_percent = 1125            else:126                time_elapsed_percent = time_elapsed / self.scroll_to['duration']127            if time_elapsed_percent >= 1:128                adjustment.set_value(self.scroll_to['position_end'])129                self.scroll_to = None130                self.scrolled_window.set_kinetic_scrolling(True)131                return False132            else:133                adjustment.set_value(self.scroll_to['position_start'] * (1 - self.ease(time_elapsed_percent)) + self.scroll_to['position_end'] * self.ease(time_elapsed_percent))134                return True135        return False...config_data.py
Source:config_data.py  
1#!/usr/bin/env python32# vim:fileencoding=utf-83# License: GPL v3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>4# Utils  {{{5from gettext import gettext as _6from functools import partial7from kitty.conf.definition import option_func8from kitty.conf.utils import (9    positive_int, python_string, to_color10)11# }}}12all_options = {}13o, k, g, all_groups = option_func(all_options, {14    'colors': [_('Colors')],15    'diff': [_('Diffing'), ],16    'shortcuts': [_('Keyboard shortcuts')],17})18g('diff')19def syntax_aliases(raw):20    ans = {}21    for x in raw.split():22        a, b = x.partition(':')[::2]23        if a and b:24            ans[a.lower()] = b25    return ans26o('syntax_aliases', 'pyj:py recipe:py', option_type=syntax_aliases, long_text=_('''27File extension aliases for syntax highlight28For example, to syntax highlight :file:`file.xyz` as29:file:`file.abc` use a setting of :code:`xyz:abc`30'''))31o('num_context_lines', 3, option_type=positive_int, long_text=_('''32The number of lines of context to show around each change.'''))33o('diff_cmd', 'auto', long_text=_('''34The diff command to use. Must contain the placeholder :code:`_CONTEXT_`35which will be replaced by the number of lines of context. The default36is to search the system for either git or diff and use that, if found.37'''))38o('replace_tab_by', r'\x20\x20\x20\x20', option_type=python_string, long_text=_('''39The string to replace tabs with. Default is to use four spaces.'''))40g('colors')41o('pygments_style', 'default', long_text=_('''42The pygments color scheme to use for syntax highlighting.43See :link:`pygments colors schemes <https://help.farbox.com/pygments.html>` for a list of schemes.'''))44c = partial(o, option_type=to_color)45c('foreground', 'black', long_text=_('Basic colors'))46c('background', 'white')47c('title_fg', 'black', long_text=_('Title colors'))48c('title_bg', 'white')49c('margin_bg', '#fafbfc', long_text=_('Margin colors'))50c('margin_fg', '#aaaaaa')51c('removed_bg', '#ffeef0', long_text=_('Removed text backgrounds'))52c('highlight_removed_bg', '#fdb8c0')53c('removed_margin_bg', '#ffdce0')54c('added_bg', '#e6ffed', long_text=_('Added text backgrounds'))55c('highlight_added_bg', '#acf2bd')56c('added_margin_bg', '#cdffd8')57c('filler_bg', '#fafbfc', long_text=_('Filler (empty) line background'))58c('hunk_margin_bg', '#dbedff', long_text=_('Hunk header colors'))59c('hunk_bg', '#f1f8ff')60c('search_bg', '#444', long_text=_('Highlighting'))61c('search_fg', 'white')62c('select_bg', '#b4d5fe')63c('select_fg', 'black')64g('shortcuts')65k('quit', 'q', 'quit', _('Quit'))66k('quit', 'esc', 'quit', _('Quit'))67k('scroll_down', 'j', 'scroll_by 1', _('Scroll down'))68k('scroll_down', 'down', 'scroll_by 1', _('Scroll down'))69k('scroll_up', 'k', 'scroll_by -1', _('Scroll up'))70k('scroll_up', 'up', 'scroll_by -1', _('Scroll up'))71k('scroll_top', 'home', 'scroll_to start', _('Scroll to top'))72k('scroll_bottom', 'end', 'scroll_to end', _('Scroll to bottom'))73k('scroll_page_down', 'page_down', 'scroll_to next-page', _('Scroll to next page'))74k('scroll_page_down', 'space', 'scroll_to next-page', _('Scroll to next page'))75k('scroll_page_up', 'page_up', 'scroll_to prev-page', _('Scroll to previous page'))76k('next_change', 'n', 'scroll_to next-change', _('Scroll to next change'))77k('prev_change', 'p', 'scroll_to prev-change', _('Scroll to previous change'))78k('all_context', 'a', 'change_context all', _('Show all context'))79k('default_context', '=', 'change_context default', _('Show default context'))80k('increase_context', '+', 'change_context 5', _('Increase context'))81k('decrease_context', '-', 'change_context -5', _('Decrease context'))82k('search_forward', '/', 'start_search regex forward', _('Search forward'))83k('search_backward', '?', 'start_search regex backward', _('Search backward'))84k('next_match', '.', 'scroll_to next-match', _('Scroll to next search match'))85k('prev_match', ',', 'scroll_to prev-match', _('Scroll to previous search match'))86k('next_match', '>', 'scroll_to next-match', _('Scroll to next search match'))87k('prev_match', '<', 'scroll_to prev-match', _('Scroll to previous search match'))88k('search_forward_simple', 'f', 'start_search substring forward', _('Search forward (no regex)'))89k('search_backward_simple', 'b', 'start_search substring backward', _('Search backward (no regex)'))...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
