Best Python code snippet using avocado_python
asset.py
Source:asset.py
...439 continue440 return asset_file441 raise OSError("File %s not found in the cache." % name)442 @classmethod443 def get_assets_unused_for_days(cls, days, cache_dirs):444 """Return a list of all assets in cache based on the access time.445 This will check if the file's data wasn't modified N days ago.446 :param days: how many days ago will be the threshold. Ex: "10" will447 return the assets files that *was not* accessed during448 the last 10 days.449 :param cache_dirs: list of directories to use during the search.450 """451 result = []452 for file_path in cls.get_all_assets(cache_dirs):453 stats = os.stat(file_path)454 diff = datetime.now() - datetime.fromtimestamp(stats.st_atime)455 if diff.days >= days:456 result.append(file_path)457 return result458 @classmethod459 def get_assets_by_size(cls, size_filter, cache_dirs):460 """Return a list of all assets in cache based on its size in MB.461 :param size_filter: a string with a filter (comparison operator +462 value). Ex ">20", "<=200". Supported operators:463 ==, <, >, <=, >=.464 :param cache_dirs: list of directories to use during the search.465 """466 try:467 op = re.match('^(\\D+)(\\d+)$', size_filter).group(1)468 value = int(re.match('^(\\D+)(\\d+)$', size_filter).group(2))469 except (AttributeError, ValueError):470 msg = ("Invalid syntax. You need to pass an comparison operatator",471 " and a value. Ex: '>=200'")472 raise OSError(msg)473 try:474 method = SUPPORTED_OPERATORS[op]475 except KeyError:476 msg = ("Operator not supported. Currented valid values are: ",477 ", ".join(SUPPORTED_OPERATORS))478 raise OSError(msg)479 result = []480 for file_path in cls.get_all_assets(cache_dirs):481 file_size = os.path.getsize(file_path)482 if method(file_size, value):483 result.append(file_path)484 return result485 @classmethod486 def remove_assets_by_overall_limit(cls, limit, cache_dirs):487 """This will remove assets based on overall limit.488 We are going to sort the assets based on the access time first.489 For instance it may be the case that a GitLab cache limit is 4490 GiB, in that case we can sort by last access, and remove all491 that exceeds 4 GiB (that is, keep the last accessed 4 GiB worth492 of cached files).493 Note: during the usage of this method, you should use bytes as limit.494 :param limit: a integer limit in bytes.495 :param cache_dirs: list of directories to use during the search.496 """497 size_sum = 0498 for asset in cls.get_all_assets(cache_dirs):499 size_sum += os.stat(asset).st_size500 if size_sum >= limit:501 cls.remove_asset_by_path(asset)502 @classmethod503 def remove_assets_by_size(cls, size_filter, cache_dirs):504 for file_path in cls.get_assets_by_size(size_filter, cache_dirs):505 cls.remove_asset_by_path(file_path)506 @classmethod507 def remove_assets_by_unused_for_days(cls, days, cache_dirs):508 for file_path in cls.get_assets_unused_for_days(days, cache_dirs):509 cls.remove_asset_by_path(file_path)510 @property511 def name_scheme(self):512 """This property will return the scheme part of the name if is an URL.513 Otherwise, will return None.514 """515 parsed = self.parsed_name516 if parsed:517 return parsed.scheme518 @property519 def name_url(self):520 """This property will return the full url of the name if is an URL.521 Otherwise, will return None.522 """...
assets.py
Source:assets.py
...427 cache_dirs = config.get("datadir.paths.cache_dirs")428 try:429 assets = None430 if days is not None:431 assets = Asset.get_assets_unused_for_days(days, cache_dirs)432 elif size_filter is not None:433 assets = Asset.get_assets_by_size(size_filter, cache_dirs)434 elif assets is None:435 assets = Asset.get_all_assets(cache_dirs)436 except (FileNotFoundError, OSError) as e:437 LOG_UI.error("Could get assets: %s", e)438 return exit_codes.AVOCADO_FAIL439 matrix = []440 for asset in assets:441 stat = os.stat(asset)442 basename = os.path.basename(asset)443 hash_path = f"{asset}-CHECKSUM"444 atime = datetime.fromtimestamp(stat.st_atime)445 _, checksum = Asset.read_hash_from_file(hash_path)...
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!!