Best Python code snippet using hypothesis
error.py
Source:error.py
1import string2import os3from py._code.code import ReprFileLocation4class CppFailureError(Exception):5 """6 Should be raised by test Facades when a test fails.7 Contains a list of `CppFailure` instances.8 """9 def __init__(self, failures):10 self.failures = failures11class CppTestFailure(object):12 """13 Represents a failure in a C++ test. Each framework14 must implement the abstract functions to build the final exception15 message that will be displayed in the terminal.16 """17 def get_lines(self):18 """19 Returns list of (line, markup) that will be displayed to the user,20 where markup can be a sequence of color codes from21 TerminalWriter._esctable:22 'black', 'red', 'green', 'yellow',23 'blue', 'purple', 'cyan', 'white',24 'bold', 'light', 'blink', 'invert'25 """26 raise NotImplementedError # pragma: no cover27 def get_file_reference(self):28 """29 Return tuple of filename, linenum of the failure.30 """31 raise NotImplementedError # pragma: no cover32class CppFailureRepr(object):33 """34 "repr" object for pytest that knows how to print a CppFailure instance35 into both terminal and files.36 """37 failure_sep = '---'38 def __init__(self, failures):39 self.failures = failures40 def __str__(self):41 reprs = []42 for failure in self.failures:43 pure_lines = '\n'.join(x[0] for x in failure.get_lines())44 repr_loc = self._get_repr_file_location(failure)45 reprs.append("%s\n%s" % (pure_lines, repr_loc))46 return self.failure_sep.join(reprs)47 def _get_repr_file_location(self, failure):48 filename, linenum = failure.get_file_reference()49 return ReprFileLocation(filename, linenum, 'C++ failure')50 def toterminal(self, tw):51 for index, failure in enumerate(self.failures):52 filename, linenum = failure.get_file_reference()53 code_lines = get_code_context_around_line(filename, linenum)54 for line in code_lines:55 tw.line(line, white=True, bold=True) # pragma: no cover56 indent = get_left_whitespace(code_lines[-1]) if code_lines else ''57 for line, markup in failure.get_lines():58 markup_params = {m: True for m in markup}59 tw.line(indent + line, **markup_params)60 location = self._get_repr_file_location(failure)61 location.toterminal(tw)62 if index != len(self.failures) - 1:63 tw.line(self.failure_sep, cyan=True)64def get_code_context_around_line(filename, linenum):65 """66 return code context lines, with the last line being the line at67 linenum.68 """69 if os.path.isfile(filename):70 index = linenum - 171 with open(filename) as f:72 index_above = index - 273 index_above = index_above if index_above >= 0 else 074 return [x.rstrip() for x in f.readlines()[index_above:index + 1]]75 return []76def get_left_whitespace(line):77 result = ''78 for c in line:79 if c in string.whitespace:80 result += c81 else:82 break...
utils.py
Source:utils.py
1# coding:utf-82'''3 Utility functions for Weave API.4 5 Created on 15.03.20106 7 @license: GNU GPL v3 or above, see LICENSE for more details.8 @copyright: 2010-2011 see AUTHORS for more details.9 @author: Jens Diemer10 @author: FladischerMichael11'''12from datetime import datetime13import base6414import hashlib15import time16from weave import Logging17logger = Logging.get_logger()18def weave_timestamp(timedata=None):19 if timedata is None:20 timedata = datetime.now()21 return time.mktime(timedata.timetuple())22def limit_wbo_queryset(request, queryset):23 """24 TODO:25 predecessorid = fromform(form, "predecessorid")26 full = fromform(form, "full")27 """28 GET = request.GET29 ids = GET.get("ids", None)30 if ids is not None:31 ids = ids.split(",")32 queryset = queryset.filter(wboid__in=ids)33 parentid = GET.get("parentid", None)34 if parentid is not None:35 queryset = queryset.filter(parentid=parentid)36 newer = GET.get("newer", None)37 if newer is not None: # Greater than or equal to newer modified timestamp38 queryset = queryset.filter(modified__gte=datetime.fromtimestamp(float(newer)))39 older = GET.get("older", None)40 if older is not None: # Less than or equal to older modified timestamp41 queryset = queryset.filter(modified__lte=datetime.fromtimestamp(float(older)))42 index_above = GET.get("index_above", None)43 if index_above is not None: # Greater than or equal to index_above modified timestamp44 queryset = queryset.filter(sortindex__gte=int(index_above))45 index_below = GET.get("index_below", None)46 if index_below is not None: # Less than or equal to index_below modified timestamp47 queryset = queryset.filter(sortindex__lte=int(index_below))48 sort_type = GET.get("sort", None)49 if sort_type is not None:50 if sort_type == 'oldest':51 queryset = queryset.order_by("modified")52 elif sort_type == 'newest':53 queryset = queryset.order_by("-modified")54 elif sort_type == 'index':55 queryset = queryset.order_by("wboid")56 else:57 raise NameError("sort type %r unknown" % sort_type)58 offset = GET.get("offset", None)59 if offset is not None:60 queryset = queryset[int(offset):]61 limit = GET.get("limit", None)62 if limit is not None:63 queryset = queryset[:int(limit)]64 return queryset65def make_sync_hash(txt):66 """67 make a base32 encoded SHA1 hash value.68 Used in firefox sync for creating a username from the email address.69 See also:70 https://hg.mozilla.org/services/minimal-server/file/5ee9d9a4570a/weave_minimal/create_user#l8771 """72 sha1 = hashlib.sha1(txt).digest()73 base32encode = base64.b32encode(sha1).lower()...
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!!