Урок 1.00:01:02
Introduction to this section
Урок 2.00:08:27
Variables in Python
Урок 3.00:02:01
Solution to coding exercise: Variables
Урок 4.00:06:27
String formatting in Python
Урок 5.00:05:17
Getting user input
Урок 6.00:03:20
Writing our first Python app
Урок 7.00:06:32
Lists, tuples, and sets
Урок 8.00:04:40
Advanced set operations
Урок 9.00:04:41
Solution to coding exercise: lists, tuples, sets
Урок 10.00:05:00
Booleans in Python
Урок 11.00:08:18
If statements
Урок 12.00:02:03
The 'in' keyword in Python
Урок 13.00:08:19
If statements with the 'in' keyword
Урок 14.00:11:08
Loops in Python
Урок 15.00:03:09
Solution to coding exercise: flow control
Урок 16.00:07:25
List comprehensions in Python
Урок 17.00:08:32
Dictionaries
Урок 18.00:08:29
Destructuring variables
Урок 19.00:10:42
Functions in Python
Урок 20.00:07:41
Function arguments and parameters
Урок 21.00:03:55
Default parameter values
Урок 22.00:07:20
Functions returning values
Урок 23.00:02:31
Solution to coding exercise: Functions
Урок 24.00:07:53
Lambda functions in Python
Урок 25.00:04:02
Dictionary comprehensions
Урок 26.00:06:17
Solution to coding exercise: dictionaries
Урок 27.00:10:25
Unpacking arguments
Урок 28.00:08:45
Unpacking keyword arguments
Урок 29.00:15:53
Object-Oriented Programming in Python
Урок 30.00:06:26
Magic methods: __str__ and __repr__
Урок 31.00:05:05
Solution to coding exercise: classes and objects
Урок 32.00:14:04
@classmethod and @staticmethod
Урок 33.00:05:55
Solution to coding exercise: @classmethod and @staticmethod
Урок 34.00:08:33
Class inheritance
Урок 35.00:06:09
Class composition
Урок 36.00:05:09
Type hinting in Python 3.5+
Урок 37.00:09:34
Imports in Python
Урок 38.00:08:53
Relative imports in Python
Урок 39.00:12:48
Errors in Python
Урок 40.00:05:05
Custom error classes
Урок 41.00:07:53
First-class functions
Урок 42.00:07:13
Simple decorators in Python
Урок 43.00:03:34
The 'at' syntax for decorators
Урок 44.00:02:25
Decorating functions with parameters
Урок 45.00:04:51
Decorators with parameters
Урок 46.00:06:04
Mutability in Python
Урок 47.00:04:28
Mutable default parameters (and why they're a bad idea)
Урок 48.00:00:38
Conclusion of this section
Урок 49.00:00:25
Introduction to this section
Урок 50.00:06:43
Setting up our project
Урок 51.00:11:11
Writing our first test
Урок 52.00:05:27
Testing dictionary equivalence
Урок 53.00:06:44
Writing blog tests and PyCharm run configurations
Урок 54.00:08:50
The __repr__ method, and intro to TDD
Урок 55.00:11:58
Integration tests and finishing the blog
Урок 56.00:16:38
Mocking, patching, and system tests
Урок 57.00:07:30
Patching the input method and returning values
Урок 58.00:16:04
Taking our patching further
Урок 59.00:07:08
The last few patches!
Урок 60.00:04:37
The TestCase setUp method
Урок 61.00:00:28
Conclusion of this section
Урок 62.00:00:27
Introduction to this section
Урок 63.00:04:39
Setting our project up
Урок 64.00:06:51
Creating our Flask app
Урок 65.00:09:57
Our first System test
Урок 66.00:06:33
Refactoring our System Tests
Урок 67.00:00:34
Conclusion of this section
Урок 68.00:00:36
Introduction to this section
Урок 69.00:18:19
A look at a REST API with Flask
Урок 70.00:08:16
Unit testing a REST API
Урок 71.00:09:38
Setting up our generic BaseTest
Урок 72.00:06:48
Integration testing a REST API
Урок 73.00:00:26
Conclusion of this section
Урок 74.00:00:21
Introduction to this section
Урок 75.00:08:46
Setting up our project
Урок 76.00:05:26
Testing foreign key constraints with Python
Урок 77.00:11:04
Unit testing models and SQLAlchemy mappers
Урок 78.00:11:39
Finishing our Store tests
Урок 79.00:00:25
Conclusion of this section
Урок 80.00:00:29
Introduction to this section
Урок 81.00:03:59
Setting project up and creating User model
Урок 82.00:04:11
Allowing users to log in
Урок 83.00:04:15
Writing our User tests
Урок 84.00:05:00
The setUpClass method in the BaseTest
Урок 85.00:06:42
Testing user registration
Урок 86.00:07:33
Finalising user System tests
Урок 87.00:13:36
Writing Store System tests
Урок 88.00:22:36
Writing our Item System tests and testing authentication
Урок 89.00:00:27
Conclusion of this section
Урок 90.00:00:41
Introduction to this section
Урок 91.00:09:02
Introduction to Postman
Урок 92.00:05:51
Our first Posman tests
Урок 93.00:07:05
Setting and clearing environment variables in Postman
Урок 94.00:07:54
Running a test folder in Postman
Урок 95.00:06:09
Advanced PyCharm run configurations
Урок 96.00:04:44
Installing Node and Newman
Урок 97.00:03:02
Multirun in PyCharm—Running app and tests together
Урок 98.00:00:37
Conclusion of this section
Урок 99.00:00:39
Introduction to this section
Урок 100.00:04:13
Installing Git
Урок 101.00:05:29
What is a Git repository?
Урок 102.00:04:32
A local Git workflow
Урок 103.00:05:18
GitHub and remote repositories
Урок 104.00:04:52
Adding our project to GitHub
Урок 105.00:02:30
What is Travis CI?
Урок 106.00:01:39
Adding our repository to Travis
Урок 107.00:10:34
The Travis config file and running tests
Урок 108.00:02:48
Adding our test badge to the Readme
Урок 109.00:00:39
Conclusion of this section
Урок 110.00:00:41
Introduction to this section
Урок 111.00:05:09
What is acceptance testing?
Урок 112.00:03:11
Introduction to our project
Урок 113.00:10:47
Our first acceptance test step
Урок 114.00:03:39
Getting the Chrome webdriver
Урок 115.00:05:45
Verifying everything works
Урок 116.00:14:52
Finishing our first test
Урок 117.00:04:01
Re-using steps with the regular expression matcher
Урок 118.00:09:19
Our first content test
Урок 119.00:18:37
Page locators and models
Урок 120.00:07:31
The blog page
Урок 121.00:06:46
Using pages in navigation
Урок 122.00:02:26
Don't over-generalise tests!
Урок 123.00:07:34
Waits and timeouts with Selenium
Урок 124.00:03:33
Debugging acceptance tests in PyCharm
Урок 125.00:02:47
Our final complex scenario
Урок 126.00:13:02
Filling in forms with Selenium
Урок 127.00:00:42
Conclusion of this section