You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(python_snippets#Get the attribute of an attribute): Get the attribute of an attribute when sorting
To sort the list in place:
```python
ut.sort(key=lambda x: x.count, reverse=True)
```
To return a new list, use the `sorted()` built-in function:
```python
newlist = sorted(ut, key=lambda x: x.body.id_, reverse=True)
```
feat(cypress): Add Cypress commands
For the functions you write a lot you can use commands in `/cypress/support/commands.ts`.
```javascript
Cypress.Commands.add('getById', (selector, ...args) => {
return cy.get(`[data-cy=${selector}]`, ...args)
})
Cypress.Commands.add('getByIdLike', (selector, ...args) => {
return cy.get(`[data-cy*=${selector}]`, ...args)
})
Cypress.Commands.add('findById', {prevSubject: true}, (subject, selector, ...args) => {
return subject.find(`[data-cy=${selector}]`, ...args)
})
```
So you can now do
```javascript
cy.getById('submit')
```
feat(cypress#Select by position in list): Add more ways to select elements
* Select by position in list
Inside our list, we can select elements based on their position in the list,
using `.first()`, `.last()` or `.eq()` selector.
```javascript
cy
.get('li')
.first(); // select "red"
cy
.get('li')
.last(); // select "violet"
cy
.get('li')
.eq(2); // select "yellow"
```
You can also use `.next()` and `.prev()` to navigate through the elements.
* Select elements by filtering
Once you select multiple elements, you can filter within these based on another selector.
```javascript
cy
.get('li')
.filter('.primary') // select all elements with the class .primary
```
To do the exact opposite, you can use `.not()` command.
```javascript
cy
.get('li')
.not('.primary') // select all elements without the class .primary
```
feat(cypress#Finding elements): Finding elements
You can specify your selector by first selecting an element you want to search
within, and then look down the DOM structure to find a specific element you are
looking for.
```javascript
cy
.get('.list')
.find('.violet') // finds an element with class .violet inside .list element
```
Instead of looking down the DOM structure and finding an element within another
element, we can look up. In this example, we first select our list item, and
then try to find an element with a `.list` class.
```javascript
cy
.get('.violet')
.parent('.list') // finds an element with class .list that is above our .violet element
```
feat(cypress#Asserting about elements): Assert on the content of an attribute
```javascript
cy
.get('a')
.invoke('attr', 'href')
.should('eq', 'https://docs.cypress.io')
```
feat(cypress#Use the content of a fixture set in a hook in a test): Use the content of a fixture set in a hook in a test
If you store and access the fixture data using this test context object, make
sure to use `function () { ... }` callbacks both for the hook and the test.
Otherwise the test engine will NOT have this pointing at the test context.
```javascript
describe('User page', () => {
beforeEach(function () {
// "this" points at the test context object
cy.fixture('user').then((user) => {
// "this" is still the test context object
this.user = user
})
})
// the test callback is in "function () { ... }" form
it('has user', function () {
// this.user exists
expect(this.user.firstName).to.equal('Jane')
})
})
```
feat(cypress#issues): Run only failing tests
Cypress doesn't [Allow to rerun failed tests](cypress-io/cypress#4886) but you can use `it.only` on the test you want to run.
feat(vuejs#Make HTTP requests): Make HTTP requests with Vue
Compare [Fetch API](vuejs.md#fetch-api) and [Axios](vuejs.md#axios) when
doing http requests to external services.
Explain how to do them with both methods and arrive to the conclusion
that if you’re working on multiple requests, you’ll find that Fetch requires you to
write more code than Axios, even when taking into consideration the setup needed
for it. Therefore, for simple requests, Fetch API and Axios are quite the same.
However, for more complex requests, Axios is better as it allows you to
configure multiple requests in one place.
If you're making a simple request use the Fetch API, for the other cases use axios because:
* It allows you to configure multiple requests in one place
* Code is shorter.
* It allows you to [place all the API calls under services so that these can be
reused across components wherever they are
needed](https://medium.com/bb-tutorials-and-thoughts/how-to-make-api-calls-in-vue-js-applications-43e017d4dc86).
* It's easy to set a timeout of the request.
* It supports HTTP interceptors by befault
* It does automatic JSON data transformation.
* It's supported by old browsers, although you can bypass the problem with fetch
too.
* It has a progress indicator for large files.
* Supports simultaneous requests by default.
Axios provides an easy-to-use API in a compact package for most of your HTTP
communication needs. However, if you prefer to stick with native APIs, nothing
stops you from implementing Axios features.
For more information read:
* [How To Make API calls in Vue.JS Applications by Bhargav Bachina](https://medium.com/bb-tutorials-and-thoughts/how-to-make-api-calls-in-vue-js-applications-43e017d4dc86)
* [Axios vs. fetch(): Which is best for making HTTP requests? by Faraz
Kelhini](https://blog.logrocket.com/axios-vs-fetch-best-http-requests/)
# [Iterate over an instance object's data attributes in Python](https://www.saltycrane.com/blog/2008/09/how-iterate-over-instance-objects-data-attributes-python/)
0 commit comments