Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Gauge-Python

Actions StatusContributor Covenant

This project adds Python language plugin for gauge.

Getting started

Pre-requisite

Installation

gauge install python

Create a gauge-python project

gauge init python

Run tests

gauge run specs

Useful links

Alternate Installation options

Install specific version

gauge install python -v 0.2.3
[pip / pip3] install getgauge

Offline installation

gauge install python --file gauge-python-0.2.3.zip
[pip / pip3] install getgauge

Build from Source

Installing package dependencies
pip install -r requirements.txt
Tests
python build.py --test
Tests Coverage
python build.py --test
coverage report -m
Installing
python build.py --install
Creating distributable
python build.py --dist

This will create a .zip file in bin directory and a .tar.gz file in dist directory.

Deployment

Only contributors with push access can create a deployment.

The deployment process is managed via Github Actions.

Follow these steps to deploy gauge-python.

  • Create a Personal Access Token in Github with repo:public_repo scope (skip this step if you already have a PAT).
  • Run GITHUB_TOKEN={Your token} sh release.sh in gauge-python dir. This will trigger a deployment workflow on Github Actions. This workflow creates a release draft with all required assets and information.
  • Visit to the release draft, analyze and update the contents (remove unnecessary entries, mention Contributors, remove dependabot PR entries).
  • Publish the draft release.
  • Once the draft is published it will trigger another workflow on Github Actions, which will perform all the Post release tasks, In case of gauge-python it will upload the getgauge python packge to PyPi.
  • Once it's done please update the new release information in gauge-repository
  • That's it. Now the release can be announced on the required community platforms (chat, google group etc.)

Examples

  • Selenium: This project serves as an example for writing automation using Gauge. It uses selenium and various Gauge/Gauge-Python features. For more details, Check out the gauge-example-python repository.

  • Selenium and REST API: This project shows an example of how to setup Gauge, Gauge Python and Magento to test REST API. For more details, Check out the blog or gauge-magento-test repository.

License

The Gauge-Python is an open-sourced software licensed under the MIT license.

Copyright

Copyright 2018 ThoughtWorks, Inc.

About

Python language runner for Gauge

Topics

Resources

Code of conduct

Contributing

Stars

96 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages