Best Python code snippet using autotest_python
resource_lib.py
Source:resource_lib.py
...241 return cls(request, instance)242 def _delete_entry(self):243 self.instance.delete()244 def full_representation(self):245 self.prepare_for_full_representation([self])246 return super(InstanceEntry, self).full_representation()247 @classmethod248 def prepare_for_full_representation(cls, entries):249 """250 Prepare the given list of entries to generate full representations.251 This method delegates to _do_prepare_for_full_representation(), which252 subclasses may override as necessary to do the actual processing. This253 method also marks the instance as prepared, so it's safe to call this254 multiple times with the same instance(s) without wasting work.255 """256 not_prepared = [entry for entry in entries257 if not entry._is_prepared_for_full_representation]258 cls._do_prepare_for_full_representation([entry.instance259 for entry in not_prepared])260 for entry in not_prepared:261 entry._is_prepared_for_full_representation = True262 @classmethod263 def _do_prepare_for_full_representation(cls, instances):264 """265 Subclasses may override this to gather data as needed for full266 representations of the given model instances. Typically, this involves267 querying over related objects, and this method offers a chance to query268 for many instances at once, which can provide a great performance269 benefit.270 """271 pass272class Collection(Resource):273 _DEFAULT_ITEMS_PER_PAGE = 50274 _permitted_methods=('GET', 'POST')275 # subclasses must override these276 queryset = None # or override _fresh_queryset() directly277 entry_class = None278 def __init__(self, request):279 super(Collection, self).__init__(request)280 assert self.entry_class is not None281 if isinstance(self.entry_class, basestring):282 type(self).entry_class = _resolve_class_path(self.entry_class)283 self._query_processor = query_lib.QueryProcessor()284 self.entry_class.add_query_selectors(self._query_processor)285 def _query_parameters_accepted(self):286 params = [('start_index', 'Index of first member to include'),287 ('items_per_page', 'Number of members to include'),288 ('full_representations',289 'True to include full representations of members')]290 for selector in self._query_processor.selectors():291 params.append((selector.name, selector.doc))292 return params293 def _fresh_queryset(self):294 assert self.queryset is not None295 # always copy the queryset before using it to avoid caching296 return self.queryset.all()297 def _entry_from_instance(self, instance):298 return self.entry_class(self._request, instance)299 def _representation(self, entry_instances):300 entries = [self._entry_from_instance(instance)301 for instance in entry_instances]302 want_full_representation = self._read_bool_parameter(303 'full_representations')304 if want_full_representation:305 self.entry_class.prepare_for_full_representation(entries)306 members = []307 for entry in entries:308 if want_full_representation:309 rep = entry.full_representation()310 else:311 rep = entry.short_representation()312 members.append(rep)313 rep = self.link()314 rep.update({'members': members})315 return rep316 def _read_bool_parameter(self, name):317 if name not in self._query_params:318 return False319 return (self._query_params[name].lower() == 'true')...
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!!