Skip to content

jamesbroadhead/pyconuk2015-testing_and_async

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slightly updated version of the code & tests from my pyconuk 2015 talk,
"Testing & Async, a journey"

Licence: Apache

Talk in extreme brief:
  timing
    x when is processing complete? it safe to assert?
    ✔ now we control the inner interface, we can return a deferred when complete

  inconsistent interface
    x more tests, make more work for caller
    ✔ always returns a consistent type (Deferred or subclass)

  mutation of state (request object)
    x hard to make assertions
    ✔ easy to compare behaviourless model object

(also includes resource01, resource02 to demonstrate pyflakes, pylint)

Run linting/tests:
  `make lint`
  `make test`


Bonus Content slide:

  Behaviour-less Model objects <-> Generated Tests (cf. ‘hypothesis’)
    ○ GOTO David MacIver’s talk “Finding more bugs..” or
    ○ Tom Viner “Failure-seeking missiles”

  Composition over Inheritance
    ○ real-services integration testing
    ○ local-services integration testing
    ○ stubbed-services integration testing
    ○ easier mocking (compose in a mock instead of monkey-patching)

  Mutation testing “I already have 100% coverage” -- mutpy

  video: Gary Bernhardt on Boundaries (also, “the clean architecture”)

  pylint -- use it! (eliminate whole category of bugs, hence fewer tests)

About

pyconuk2015-testing_and_async

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published