How to use environ method in autotest

Best Python code snippet using autotest_python

util.py

Source: util.py Github

copy

Full Screen

1"""Miscellaneous WSGI-related Utilities"""2import posixpath3__all__ = [4 'FileWrapper', 'guess_scheme', 'application_uri', 'request_uri',5 'shift_path_info', 'setup_testing_defaults',6]7class FileWrapper:8 """Wrapper to convert file-like objects to iterables"""9 def __init__(self, filelike, blksize=8192):10 self.filelike = filelike11 self.blksize = blksize12 if hasattr(filelike,'close'):13 self.close = filelike.close14 def __getitem__(self,key):15 data = self.filelike.read(self.blksize)16 if data:17 return data18 raise IndexError19 def __iter__(self):20 return self21 def next(self):22 data = self.filelike.read(self.blksize)23 if data:24 return data25 raise StopIteration26def guess_scheme(environ):27 """Return a guess for whether 'wsgi.url_scheme' should be 'http' or 'https'28 """29 if environ.get("HTTPS") in ('yes','on','1'):30 return 'https'31 else:32 return 'http'33def application_uri(environ):34 """Return the application's base URI (no PATH_INFO or QUERY_STRING)"""35 url = environ['wsgi.url_scheme']+':/​/​'36 from urllib import quote37 if environ.get('HTTP_HOST'):38 url += environ['HTTP_HOST']39 else:40 url += environ['SERVER_NAME']41 if environ['wsgi.url_scheme'] == 'https':42 if environ['SERVER_PORT'] != '443':43 url += ':' + environ['SERVER_PORT']44 else:45 if environ['SERVER_PORT'] != '80':46 url += ':' + environ['SERVER_PORT']47 url += quote(environ.get('SCRIPT_NAME') or '/​')48 return url49def request_uri(environ, include_query=1):50 """Return the full request URI, optionally including the query string"""51 url = application_uri(environ)52 from urllib import quote53 path_info = quote(environ.get('PATH_INFO',''),safe='/​;=,')54 if not environ.get('SCRIPT_NAME'):55 url += path_info[1:]56 else:57 url += path_info58 if include_query and environ.get('QUERY_STRING'):59 url += '?' + environ['QUERY_STRING']60 return url61def shift_path_info(environ):62 """Shift a name from PATH_INFO to SCRIPT_NAME, returning it63 If there are no remaining path segments in PATH_INFO, return None.64 Note: 'environ' is modified in-place; use a copy if you need to keep65 the original PATH_INFO or SCRIPT_NAME.66 Note: when PATH_INFO is just a '/​', this returns '' and appends a trailing67 '/​' to SCRIPT_NAME, even though empty path segments are normally ignored,68 and SCRIPT_NAME doesn't normally end in a '/​'. This is intentional69 behavior, to ensure that an application can tell the difference between70 '/​x' and '/​x/​' when traversing to objects.71 """72 path_info = environ.get('PATH_INFO','')73 if not path_info:74 return None75 path_parts = path_info.split('/​')76 path_parts[1:-1] = [p for p in path_parts[1:-1] if p and p != '.']77 name = path_parts[1]78 del path_parts[1]79 script_name = environ.get('SCRIPT_NAME','')80 script_name = posixpath.normpath(script_name+'/​'+name)81 if script_name.endswith('/​'):82 script_name = script_name[:-1]83 if not name and not script_name.endswith('/​'):84 script_name += '/​'85 environ['SCRIPT_NAME'] = script_name86 environ['PATH_INFO'] = '/​'.join(path_parts)87 # Special case: '/​.' on PATH_INFO doesn't get stripped,88 # because we don't strip the last element of PATH_INFO89 # if there's only one path part left. Instead of fixing this90 # above, we fix it here so that PATH_INFO gets normalized to91 # an empty string in the environ.92 if name=='.':93 name = None94 return name95def setup_testing_defaults(environ):96 """Update 'environ' with trivial defaults for testing purposes97 This adds various parameters required for WSGI, including HTTP_HOST,98 SERVER_NAME, SERVER_PORT, REQUEST_METHOD, SCRIPT_NAME, PATH_INFO,99 and all of the wsgi.* variables. It only supplies default values,100 and does not replace any existing settings for these variables.101 This routine is intended to make it easier for unit tests of WSGI102 servers and applications to set up dummy environments. It should *not*103 be used by actual WSGI servers or applications, since the data is fake!104 """105 environ.setdefault('SERVER_NAME','127.0.0.1')106 environ.setdefault('SERVER_PROTOCOL','HTTP/​1.0')107 environ.setdefault('HTTP_HOST',environ['SERVER_NAME'])108 environ.setdefault('REQUEST_METHOD','GET')109 if 'SCRIPT_NAME' not in environ and 'PATH_INFO' not in environ:110 environ.setdefault('SCRIPT_NAME','')111 environ.setdefault('PATH_INFO','/​')112 environ.setdefault('wsgi.version', (1,0))113 environ.setdefault('wsgi.run_once', 0)114 environ.setdefault('wsgi.multithread', 0)115 environ.setdefault('wsgi.multiprocess', 0)116 from StringIO import StringIO117 environ.setdefault('wsgi.input', StringIO(""))118 environ.setdefault('wsgi.errors', StringIO())119 environ.setdefault('wsgi.url_scheme',guess_scheme(environ))120 if environ['wsgi.url_scheme']=='http':121 environ.setdefault('SERVER_PORT', '80')122 elif environ['wsgi.url_scheme']=='https':123 environ.setdefault('SERVER_PORT', '443')124_hoppish = {125 'connection':1, 'keep-alive':1, 'proxy-authenticate':1,126 'proxy-authorization':1, 'te':1, 'trailers':1, 'transfer-encoding':1,127 'upgrade':1128}.__contains__129def is_hop_by_hop(header_name):130 """Return true if 'header_name' is an HTTP/​1.1 "Hop-by-Hop" header"""...

Full Screen

Full Screen

hell_config.py

Source: hell_config.py Github

copy

Full Screen

1# IF YOU ARE HOSTING HELLBOT ON OTHER VPS OR LOCALLY RATHER THAN HEROKU2# THEN DON'T EDIT THIS FILE.3# GO AND EDIT ex_config.py AND RENAME IT TO config.py4# AND FILL THE REQUIRED VARS THERE.5# !!! DO NOT EDIT THIS FILE !!!6import os7from telethon.tl.types import ChatBannedRights8class Config(object):9 LOGGER = True10 ABUSE = os.environ.get("ABUSE", None)11 API_HASH = os.environ.get("API_HASH", None)12 APP_ID = os.environ.get("APP_ID", None)13 BL_CHAT = set(int(x) for x in os.environ.get("BL_CHAT", "").split())14 BOT_HANDLER = os.environ.get("BOT_HANDLER", "\/​")15 BOT_TOKEN = os.environ.get("BOT_TOKEN", None)16 BOT_USERNAME = os.environ.get("BOT_USERNAME", None)17 BUTTONS_IN_HELP = int(os.environ.get("BUTTONS_IN_HELP", 7))18 CHROME_BIN = os.environ.get("CHROME_BIN", "/​app/​.apt/​usr/​bin/​google-chrome")19 CHROME_DRIVER = os.environ.get("CHROME_DRIVER", "/​app/​.chromedriver/​bin/​chromedriver")20 DB_URI = os.environ.get("DATABASE_URL", None)21 EMOJI_IN_HELP = os.environ.get("EMOJI_IN_HELP", "✧")22 FBAN_LOG_GROUP = os.environ.get("FBAN_LOG_GROUP", None)23 if FBAN_LOG_GROUP:24 FBAN_LOG_GROUP = int(FBAN_LOG_GROUP)25 G_DRIVE_CLIENT_ID = os.environ.get("G_DRIVE_CLIENT_ID", None)26 G_DRIVE_CLIENT_SECRET = os.environ.get("G_DRIVE_CLIENT_SECRET", None)27 GBAN_LOG_GROUP = os.environ.get("GBAN_LOG_GROUP", None)28 if GBAN_LOG_GROUP:29 GBAN_LOG_GROUP = int(GBAN_LOG_GROUP)30 GDRIVE_FOLDER_ID = os.environ.get("GDRIVE_FOLDER_ID", None)31 GIT_REPO_NAME = os.environ.get("GIT_REPO_NAME", None)32 GITHUB_ACCESS_TOKEN = os.environ.get("GITHUB_ACCESS_TOKEN", None)33 GOOGLE_CHROME_BIN = os.environ.get("GOOGLE_CHROME_BIN", "/​app/​.apt/​usr/​bin/​google-chrome")34 HANDLER = os.environ.get("HANDLER", ".")35 HEROKU_API_KEY = os.environ.get("HEROKU_API_KEY", None)36 HEROKU_APP_NAME = os.environ.get("HEROKU_APP_NAME", None)37 INSTANT_BLOCK = os.environ.get("INSTANT_BLOCK", None)38 LOGGER_ID = os.environ.get("LOGGER_ID", None)39 if LOGGER_ID:40 LOGGER_ID = int(LOGGER_ID)41 MAX_MESSAGE_SIZE_LIMIT = 409542 MAX_SPAM = int(os.environ.get("MAX_SPAM", 3))43 MY_CHANNEL = os.environ.get("YOUR_CHANNEL", "Its_HellBot")44 MY_GROUP = os.environ.get("YOUR_GROUP", "HellBot_Chat")45 OCR_API = os.environ.get("OCR_API", None)46 PLUGIN_CHANNEL = os.environ.get("PLUGIN_CHANNEL", None)47 if PLUGIN_CHANNEL:48 PLUGIN_CHANNEL = int(PLUGIN_CHANNEL)49 PM_LOG_ID = os.environ.get("PM_LOG_ID", None)50 if PM_LOG_ID:51 PM_LOG_ID = int(PM_LOG_ID)52 PM_PERMIT = os.environ.get("PM_PERMIT", None)53 REMOVE_BG_API = os.environ.get("REMOVE_BG_API", None)54 HELLBOT_SESSION = os.environ.get("HELLBOT_SESSION", None)55 SESSION_2 = os.environ.get("SESSION_2", None)56 SESSION_3 = os.environ.get("SESSION_3", None)57 SESSION_4 = os.environ.get("SESSION_4", None)58 SESSION_5 = os.environ.get("SESSION_5", None)59 SUDO_HANDLER = os.environ.get("SUDO_HANDLER", ".")60 SUDO_USERS = []61 TAG_LOGGER = os.environ.get("TAG_LOGGER", None)62 if TAG_LOGGER: 63 TAG_LOGGER = int(TAG_LOGGER)64 TEMP_DIR = os.environ.get("TEMP_DIR", None)65 TMP_DOWNLOAD_DIRECTORY = os.environ.get("TMP_DOWNLOAD_DIRECTORY", "./​DOWNLOADS/​")66 THUMB_IMG = os.environ.get("THUMB_IMG", "./​hellbot/​resources/​pics/​hellbot_logo.jpg")67 UNLOAD = list(os.environ.get("UNLOAD", "").split())68 UPSTREAM_REPO = os.environ.get("UPSTREAM_REPO", "https:/​/​github.com/​The-HellBot/​HellBot")69 WEATHER_API = os.environ.get("WEATHER_API", None)70class Production(Config):71 LOGGER = False72class Development(Config):...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

Acquiring Employee Support for Change Management Implementation

Enterprise resource planning (ERP) is a form of business process management software—typically a suite of integrated applications—that assists a company in managing its operations, interpreting data, and automating various back-office processes. The introduction of a new ERP system is analogous to the introduction of a new product into the market. If the product is not handled appropriately, it will fail, resulting in significant losses for the business. Most significantly, the employees’ time, effort, and morale would suffer as a result of the procedure.

How To Use Playwright For Web Scraping with Python

In today’s data-driven world, the ability to access and analyze large amounts of data can give researchers, businesses & organizations a competitive edge. One of the most important & free sources of this data is the Internet, which can be accessed and mined through web scraping.

Fluent Interface Design Pattern in Automation Testing

Recently, I was going through some of the design patterns in Java by reading the book Head First Design Patterns by Eric Freeman, Elisabeth Robson, Bert Bates, and Kathy Sierra.

Introducing LambdaTest Analytics: Test Reporting Made Awesome ????

Collecting and examining data from multiple sources can be a tedious process. The digital world is constantly evolving. To stay competitive in this fast-paced environment, businesses must frequently test their products and services. While it’s easy to collect raw data from multiple sources, it’s far more complex to interpret it properly.

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run autotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful