Testing My Patience. Automated Testing for Python Projects. Adam Lowry Portland Python Users Group
|
|
- Augustus Dickerson
- 5 years ago
- Views:
Transcription
1 Testing My Patience Automated Testing for Python Projects Adam Lowry Portland Python Users Group
2 Unit Testing Integration/Functional Testing Web Testing
3 Maurice Koop: Avoid This
4 michelle_p: Unit Testing Purpose: ensure correctness, exercise code Test a small area; one class, or ideally one method Cover possible errors here, because that s harder at higher levels TDD worth trying, but unit testing is useful no matter what
5 unittest import unittest class TestMath(unittest.TestCase): def test_addition(self): """Simple addition must be correct.""" self.assertequals(2 + 2, 4) assert == 6 if name == ' main ': unittest.main() Ugh, assertequals. So non-pep8! assertequals -> failure assert -> error (any exception)
6 Running python test-examples.py --verbose Simple addition must be correct.... ok Ran 1 test in 0.000s OK Collection is a pain. What file to run?
7 nose for sanity s sake adam@rye:~/projects/pdxpython$ nosetests -v Simple addition must be correct.... ok Ran 1 test in seconds OK (?:^ [\\b_\\.-])[tt]est Searches filesystem for tests, auto-adds current dir to pythonpath, runs anything that looks like a test (matches that regexp) Includes very handy plugins (like code coverage!)
8 py.test worth considering py.test -v test-examples.py ============================= test session starts ============================== python: platform darwin -- Python /Users/adam/projects/pdxpython/bin/ python pytest test object 1: /Users/adam/projects/pdxpython/test-examples.py test-examples.py:6: TestMath.test_addition PASS =========================== 1 passed in 0.03 seconds =========================== Cool! Lots of features. Totally non intuitive to me
9 import nose def test_add(): assert == 3 def test_add2(): nose.tools.assert_equals(2 + 2, 3) (pdxpython)adam@rye:~/projects/pdxpython$ nosetests -v nose-examples.py nose-examples.test_add... FAIL nose-examples.test_add2... FAIL ====================================================================== FAIL: nose-examples.test_add Traceback (most recent call last): File "/Users/adam/projects/pdxpython/lib/python2.5/site-packages/nose py2.5.egg/nose/case.py", line 183, in runtest self.test(*self.arg) File "/Users/adam/projects/pdxpython/nose-examples.py", line 5, in test_add assert == 3 AssertionError ====================================================================== FAIL: nose-examples.test_add Traceback (most recent call last): File "/Users/adam/projects/pdxpython/lib/python2.5/site-packages/nose py2.5.egg/nose/case.py", line 183, in runtest self.test(*self.arg) File "/Users/adam/projects/pdxpython/nose-examples.py", line 9, in test_add2 nose.tools.assert_equals(2 + 2, 3) AssertionError: 4!= Ran 2 tests in seconds FAILED (failures=2) Plain functions! More Pythonic, but mixing & matching is good.
10 class TestMath(unittest.TestCase): def setup(self): self.target = 4 def test_addition(self): """Simple addition must be correct.""" self.assertequals(2 + 2, self.target) assert == 6 target = None def set_target(): global target target = def test_add(): nose.tools.assert_equals(2 + 2, target) Do you have fixtures to set up before every function? Storing data as member variables? Go ahead and use a class. Kind of a ideological.
11 Pros: Show API usage in test - Executable documentation Cons: No fixtures (setup/teardown) - No editor support - Can be hard to debug Doctest class Outer(object): """Outside worker >>> outer = Outer() >>> outer.outer_work() True """ def init (self): self.inner = Inner() def outer_work(self): try: return self.inner.inner_work() except Exception: return False (pdxpython)adam@rye:~/projects/pdxpython$ nosetests -v --with-doctest worker.py Doctest: worker.outer... ok Ran 1 test in seconds OK
12 Mocks and Stubs Sakurako Kitsa Andrei Z
13 Mock: action assertion Mox: record replay
14 class Inner(object): def inner_work(self): return True class Outer(object): def init (self): self.inner = Inner() def outer_work(self): try: return self.inner.inner_work() except Exception: return False Goal: test Outer isolated from Inner
15 lambda x: True) def test_outer_w_mock(): outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), lambda x: False) def test_outer_inner_fails_w_mock(): outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), False)
16 mox.stuboutwithmock() def test_outer_w_mox(): moxer = mox.mox() moxer.stuboutwithmock(worker.inner, 'inner_work') worker.inner.inner_work().andreturn(true) moxer.replayall() outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), True) moxer.verifyall() moxer.unsetstubs()
17 class TestOuterWMox(mox.MoxTestBase): def test_outer_fails(self): self.mox.stuboutwithmock(worker.inner, 'inner_work') worker.inner.inner_work().andreturn(false) self.mox.replayall() outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), False) self.mox.verifyall()
18 Testing Exceptions def raiser(obj): raise raiser) def test_outer_exc_w_mock(): outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), False) def test_outer_exception(self): self.mox.stuboutwithmock(worker.inner, 'inner_work') worker.inner.inner_work().andraise(exception) self.mox.replayall() outer = worker.outer() nose.tools.assert_equal(outer.outer_work(), False) self.mox.verifyall()
19 This is your application AriCee: It is a unique and beautiful snowflake. It has special needs.
20 class User(object): """User object, connected to the user_table >>> user = User(password='password') >>> db.session.flush() >>> user # doctest: +ELLIPSIS <User...> >>> user.is_anonymous() False >>> User.query.filter_by(id=user.id).one() is user True >>> user.id 1 """ def init (self, **kwargs): Our goal: use doctests like this on SQLAlchemy-backed objects, touching an in-memory SQLite database, automatic rollback after every test SQLAlchemy had auto-add, scoped sessions, so lots automatic
21 Solution: Custom Nose Plugin from nose.plugins import Plugin class RollbackPlugin(Plugin): """Rollback transaction after each test""" name = 'rollback' def beforetest(self, test): from myapp import test_utils test_utils.set_up_app() def aftertest(self, test): from myapp import db db.session.rollback() db.session.close()
22 setup.py try: import ez_setup ez_setup.use_setuptools() except ImportError: pass from setuptools import setup setup( name='rollbackplugin', description='nose plugin to rollback transaction after each test', py_modules=['rollback'], version='0.1', zip_safe=false, entry_points={ 'nose.plugins': [ 'rollback = rollback:rollbackplugin' ] } ) nosetests -v --with-doctest --with-rollback Nose uses setuptools entry points for plugins, so you ll need to make a package Nose config handling isn t the best, so I like to put default plugins in test running script (Paver)
23 Integration/Functional Testing fotoopa: When you put the pieces together, it can get a little complex. Especially setup & teardown - need to clean DB, file system? - Keep it totally separate from normal workspace so you don t kill your personal test data
24 # in tests/ init.py server_proc = None def setup_package(): global server_proc subprocess.call("dropdb myapp-test") subprocess.call("createdb myapp-test") server_proc = subprocess.popen("myapp/manage.py runserver --noreload") def teardown_package(): server_proc.kill() Use nose package fixtures for setup/teardown easy to read, can still use nose to handle most everything
25 Web Testing I mostly work on web apps. Use functional testing, set up like before. But how to Interact?
26 Twill go $home code 200 find "Don't have an account yet?" # login screen fv 1 username $username fv 1 password $password submit code 200 notfind 'Sorry' from twill.commands import * go(home) code(200) find("don't have an account yet?") # login screen fv(1, "username", username) fv(1, "password", password) submit() code(200) notfind('sorry') Simple language or python functions no javascript, but very fast speaks http directly, but has a wrapper for wsgi to speak to an app directly
27 Twill Plugins def enter_password( , password): """Enters and password in login form.""" import twill.commands as cmds cmds.fv(' ', ' ', ) cmds.fv(' ', 'password', password) cmds.fv(' ', 'has_password', 'yes') cmds.submit() cmds.code(200) twill.commands.extend_with('myapp.twill_extensions') Useful way to reduce duplication in tests Remember: tests are code! You have to refactor them, as well
28 Javascript? Windmill Avoid Selenium if you haven t already invested time. Great project, difficult to debug
29 References nose: py.test: Mock: Mox: Twill: Windmill:
30 Thanks!
Software Carpentry. Nicola Chiapolini. Physik-Institut University of Zurich. June 16, 2015
Nicola Chiapolini, June 16, 2015 1 / 45 Software Carpentry Nicola Chiapolini Physik-Institut University of Zurich June 16, 2015 Based on a talk by Pietro Berkes This work is licensed under the Creative
More informationdoubles Documentation
doubles Documentation Release 1.1.0 Jimmy Cuadra August 23, 2015 Contents 1 Installation 3 2 Integration with test frameworks 5 2.1 Pytest................................................... 5 2.2 Nose...................................................
More informationTest-Driven Data Science: Writing Unit Tests for SASPy Python Data Processes
SAS2347-2018 Test-Driven Data Science: Writing Unit Tests for SASPy Python Data Processes Stephen Siegert, SAS Institute Inc. ABSTRACT Code needs tested == True. We ve all been there tweak this parameter,
More informationFlask-Testing Documentation
Flask-Testing Documentation Release 0.3 Dan Jacob Dec 31, 2017 Contents 1 Installing Flask-Testing 3 2 Writing tests 5 2.1 Testing with LiveServer......................................... 5 2.2 Dynamic
More informationContinuous Integration INRIA
Vincent Rouvreau - https://sed.saclay.inria.fr February 28, 2017 Contents 1 Preamble In this exercice, you will learn how to install your Python program with packaging tools, test it, measure the tests
More informationAgile development. Agile development work cycle. Reacting to bugs
Agile development Agile development work cycle Repeat until all features are implemented: 1. Write a test that defines your next feature 2. Write the simplest version of code that makes your test 3. Run
More informationLotus IT Hub. Module-1: Python Foundation (Mandatory)
Module-1: Python Foundation (Mandatory) What is Python and history of Python? Why Python and where to use it? Discussion about Python 2 and Python 3 Set up Python environment for development Demonstration
More informationUnit Testing and Python. Pat Pannuto / Marcus Darden
Unit Testing and Python Pat Pannuto / Marcus Darden Test Driven Development (TDD) Test Driven Development (TDD) TDD Methodology "Strictly speaking" 1. Add a test 2. Run the test suite Note: This should
More informationUnit Tests. # Store the result of a boolean expression in a variable. >>> result = str(5)=='5'
7 Unit Testing Lab Objective: Finding and fixing programming errors can be difficult and time consuming, especially in large or complex programs. Unit testing is a formal strategy for finding and eliminating
More informationBetamax Documentation
Betamax Documentation Release 0.8.1 Ian Stapleton Cordasco Apr 06, 2018 Narrative Documentation 1 Example Use 3 2 What does it even do? 5 3 VCR Cassette Compatibility 7 4 Contributing 9 5 Contents of
More informationDjango Test Utils Documentation
Django Test Utils Documentation Release 0.3 Eric Holscher July 22, 2016 Contents 1 Source Code 3 2 Contents 5 2.1 Django Testmaker............................................ 5 2.2 Django Crawler.............................................
More informationRepresenting Documents; Unit Testing II
Representing Documents; Unit Testing II Benjamin Roth CIS LMU Benjamin Roth (CIS LMU) Representing Documents;Unit Testing II 1 / 26 Documents and Word Statistics Often, documents are the units a natural
More informationflask-dynamo Documentation
flask-dynamo Documentation Release 0.1.2 Randall Degges January 22, 2018 Contents 1 User s Guide 3 1.1 Quickstart................................................ 3 1.2 Getting Help...............................................
More informationPyBuilder Documentation
PyBuilder Documentation Release 0.10 PyBuilder Team Jun 21, 2018 Contents 1 Installation 1 1.1 Virtual Environment........................................... 1 1.2 Installing completions..........................................
More informationGrowing Embedded Applications Organically with Ceedling and Friends. Greg Williams
Growing Embedded Applications Organically with Ceedling and Friends Greg Williams Embedded Development... Limited Memory Limited Processing Power Language Limitations Short Timelines Growing Complexity
More informationTest-Driven Development JUnit
Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 18, 2017 1 Simulator submission
More informationArchan. Release 2.0.1
Archan Release 2.0.1 Jul 30, 2018 Contents 1 Archan 1 1.1 Features.................................................. 1 1.2 Installation................................................ 1 1.3 Documentation..............................................
More informationgocept.selenium Release 3.0
gocept.selenium Release 3.0 Feb 12, 2018 Contents 1 Environment variables 3 2 Jenkins integration 5 3 Tips & Tricks 7 3.1 Using a custom Firefox profile...................................... 7 3.2 Using
More informationCNRS ANF PYTHON Packaging & Life Cycle
CNRS ANF PYTHON Packaging & Life Cycle Marc Poinot Numerical Simulation Dept. Outline Package management with Python Concepts Software life cycle Package services Pragmatic approach Practical works Source
More informationReliable programming
Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed
More informationCSE : Python Programming. Packages (Tutorial, Section 6.4) Announcements. Today. Packages: Concretely. Packages: Overview
Announcements CSE 399-004: Python Programming Lecture 07: Packages, Command-line arguments, and Unit testing February 26, 2007 http://www.seas.upenn.edu/~cse39904/ No homework this week There may be one
More informationEXPERIENCES MOVING FROM DJANGO TO FLASK
EXPERIENCES MOVING FROM DJANGO TO FLASK DAN O BRIEN, VP OF ENGINEERING CRAIG LANCASTER, CTO Jana Mobile Inc. www.jana.com WHO WE ARE Jana is a startup company in Boston connecting advertising and marketing
More informationLearning vrealize Orchestrator in action V M U G L A B
Learning vrealize Orchestrator in action V M U G L A B Lab Learning vrealize Orchestrator in action Code examples If you don t feel like typing the code you can download it from the webserver running on
More informationweb.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.
web.py Tutorial Tom Kelliher, CS 317 1 Acknowledgment This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. 2 Starting So you know Python and want to make
More informationCUSTOM CODE CHECKS. Anton Marchukov. PyCon Israel 2017
Anton Marchukov PyCon Israel 2017 ABOUT ME @martchukov Senior Software Engineer at Red Hat. ovirt Community Infra team. CI and related infrastructure. Lots of automation in Python. DevOps advocate. ovirt
More informationHOW TO FLASK. And a very short intro to web development and databases
HOW TO FLASK And a very short intro to web development and databases FLASK Flask is a web application framework written in Python. Created by an international Python community called Pocco. Based on 2
More informationAiroscript-ng Documentation
Airoscript-ng Documentation Release 0.0.4 David Francos Cuartero January 22, 2015 Contents 1 Airoscript-ng 3 1.1 Features.................................................. 3 1.2 TODO..................................................
More informationdjango-embed-video Documentation
django-embed-video Documentation Release 0.7.stable Juda Kaleta December 21, 2013 Contents i ii Django app for easy embeding YouTube and Vimeo videos and music from SoundCloud. Repository is located on
More informationUnit Testing In Python
Lab 13 Unit Testing In Python Lab Objective: One of the hardest parts of computer programming is ensuring that a program does what you expect it to do. For instance, a program may fail to meet specifications,
More informationWatson - DB. Release 2.7.0
Watson - DB Release 2.7.0 Jan 15, 2018 Contents 1 Build Status 3 2 Dependencies 5 3 Installation 7 4 Testing 9 5 Contributing 11 6 Table of Contents 13 6.1 Usage...................................................
More informationzope.location Documentation
zope.location Documentation Release 4.0 Zope Foundation Contributors January 28, 2015 Contents 1 Using zope.location 3 1.1 Location................................................ 3 1.2 inside()................................................
More informationRa Documentation. Release. Brandicted
Ra Documentation Release Brandicted Oct 05, 2017 Contents 1 Table of Contents 3 1.1 Getting Started.............................................. 3 1.2 Writing Tests...............................................
More informationPytest C. Release. John McNamara
Pytest C Release John McNamara Mar 08, 2018 Contents 1 The C Unit Tests 1 2 The Pytest hooks 3 2.1 The conftest.py file............................................ 3 2.2 Finding test files.............................................
More informationSoftware carpentry From theory to practice: Python tools. Pietro Berkes, Enthought UK
Software carpentry From theory to practice: Python tools Pietro Berkes, Enthought UK Outline } Ouverture } The agile programming cycle, scientific-style } Testing scientific code } Debugging } Optimization
More informationaiounittest Documentation
aiounittest Documentation Release 1.1.0 Krzysztof Warunek Sep 23, 2017 Contents 1 What? Why? Next? 1 1.1 What?................................................... 1 1.2 Why?...................................................
More informationSoftware carpentry From theory to practice: Standard tools. Pietro Berkes, Enthought UK
Software carpentry From theory to practice: Standard tools Pietro Berkes, Enthought UK Modern programming practices and science } Researchers and scientific software developers write software daily, but
More informationLet s Test South Africa. Tim Coulter, 2014
Let s Test South Africa Tim Coulter, 2014 tim@tjc.io Automation is like beating dumb kids with a stick. Text Automation sucks. (for a lot of reasons) Main points My Background Definitions Value - does
More informationUnifer Documentation. Release V1.0. Matthew S
Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................
More informationDeveloping your own Swift middleware. OpenStack Summit Atlanta, May 2014
Developing your own Swift middleware OpenStack Summit Atlanta, May 2014 About me Christian Schwede Developer @ enovance Mostly working on Swift, testing and automation Started using Swift in 2012 Agenda
More informationBasic Keywords Practice Session
Basic Keywords Practice Session Introduction In this article from my free Java 8 course, we will apply what we learned in my Java 8 Course Introduction to our first real Java program. If you haven t yet,
More informationJust Mock It! Leveraging Mock Objects
Just Mock It! Leveraging Mock Objects 1 Who am I? Luis Majano - Computer Engineer Born in San Salvador, El Salvador --> President of Ortus Solutions Manager of the IECFUG (www.iecfug.com) Creator of ColdBox,
More informationDjango Standalone Apps
Django Standalone Apps A developer s fieldguide to developing reusable Django applications Ben Lopatin 2015-2016 Ben Lopatin Contents Just a sample................................... Introduction...................................
More informationUnit testing with pytest and nose 1
Unit testing with pytest and nose 1 Hans Petter Langtangen 1,2 1 Center for Biomedical Computing, Simula Research Laboratory 2 Department of Informatics, University of Oslo Mar 23, 2015 Contents 1 Requirements
More informationHow does PyCharm match up against competing tools?
How does PyCharm match up against competing tools? PyCharm is an IDE for Python developed by JetBrains. PyCharm is built for professional Python developers, and comes with many features to deal with large
More informationdjango-dynamic-db-router Documentation
django-dynamic-db-router Documentation Release 0.1.1 Erik Swanson August 24, 2016 Contents 1 Table of Contents 3 1.1 Installation................................................ 3 1.2 Quickstart................................................
More informationflexmock Documentation
flexmock Documentation Release 0.10.2 Slavek Kabrda, Herman Sheremetyev November 08, 2016 Contents 1 Installation 3 2 Compatibility 5 3 Start Here 7 3.1 Start Here.................................................
More informationUSING DRUPAL. Hampshire College Website Editors Guide https://drupal.hampshire.edu
USING DRUPAL Hampshire College Website Editors Guide 2014 https://drupal.hampshire.edu Asha Kinney Hampshire College Information Technology - 2014 HOW TO GET HELP Your best bet is ALWAYS going to be to
More informationTest automation / JUnit. Building automatically repeatable test suites
Test automation / JUnit Building automatically repeatable test suites Test automation n Test automation is software that automates any aspect of testing n Generating test inputs and expected results n
More informationTest automation Test automation / JUnit
Test automation Test automation / JUnit Building automatically repeatable test suites Test automation is software that automates any aspect of testing Generating test inputs and expected results Running
More informationSetting up Caravel with IBM Big SQL
Setting up Caravel with IBM Big SQL Rajesh Kartha, IBM Introduction: Airbnb recently open sourced their visualization/dashboarding tool called Caravel (inception name Panoramix). This tool is under Apache
More information3 Continuous Integration 3. Automated system finding bugs is better than people
This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can
More informationCMSC 201 Fall 2016 Lab 09 Advanced Debugging
CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working
More informationAdvanced Flask Patterns
Advanced Flask Patterns (mysteriously also applicable to other things) a presentation by Armin Ronacher @mitsuhiko Some of these things are general suggestions of how I think applications can be structured
More informationInstrumental Documentation
Instrumental Documentation Release 0.5.1 Matthew J Desmarais February 08, 2016 Contents 1 Introduction 3 1.1 What is instrumental?.......................................... 3 1.2 What s the problem?...........................................
More informationGetting Django Set Up Using a Functional Test
CHAPTER 1 Getting Django Set Up Using a Functional Test TDD isn t something that comes naturally. It s a discipline, like a martial art, and just like in a Kung-Fu movie, you need a bad-tempered and unreasonable
More informationAPACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER How to write clean & testable code without losing your mind - Andreas Czakaj
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 25-27 SEPTEMBER 2017 How to write clean & testable code without losing your mind - Andreas Czakaj How did you learn what you know today? There are three kinds
More informationRelease Clearcode < and associates (see AUTHORS)
pytest s aucedocumentation Release 0.3.3 Clearcode and associates (see AUTHORS) July 14, 2014 Contents 1 Contents 3 1.1 Usage................................................... 3
More informationtolerance Documentation
tolerance Documentation Release Alisue Apr 1, 217 Contents 1 tolerance 1 1.1 Features.................................................. 1 1.2 Installation................................................
More informationnacelle Documentation
nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2
More informationpycall Documentation Release Randall Degges
pycall Documentation Release 2.3.2 Randall Degges Sep 28, 2017 Contents 1 Foreword 3 1.1 What is Asterisk?............................................. 3 1.2 What Are Call Files?...........................................
More informationSQLite vs. MongoDB for Big Data
SQLite vs. MongoDB for Big Data In my latest tutorial I walked readers through a Python script designed to download tweets by a set of Twitter users and insert them into an SQLite database. In this post
More informationMavrig. a Tcl application construction kit. Jean-Claude Wippler Equi 4 Software, NL. EuroTcl 2008, Strasbourg, FR
Mavrig a Tcl application construction kit Jean-Claude Wippler Equi 4 Software, NL EuroTcl 2008, Strasbourg, FR Let s write an app Tons of packages to build with - Tcllib, etc Choose:! file structure, dev
More informationhelper Documentation Release Gavin M. Roy
helper Documentation Release 2.1.0 Gavin M. Roy September 24, 2013 CONTENTS i ii helper is a command-line/daemon application wrapper package with the aim of creating a consistent and fast way to creating
More informationCP215 Application Design
CP215 Application Design Drone outperforms humans at following mountain trails! Tech News! Tech News! Drone outperforms humans at following mountain trails! Facebook to put ads in Messenger Hacker's Tip
More informationBuilding Scalable Web Apps with Python and Google Cloud Platform. Dan Sanderson, April 2015
Building Scalable Web Apps with Python and Google Cloud Platform Dan Sanderson, April 2015 June 2015 pre-order now Agenda Introducing GCP & GAE Starting a project with gcloud and Cloud Console Understanding
More informationsinon Documentation Release Kir Chou
sinon Documentation Release 0.1.1 Kir Chou Jun 10, 2017 Contents 1 Overview 3 2 Contents 5 2.1 Setup................................................... 5 2.2 Spies...................................................
More informationMastering Python Decorators
Mastering Python Decorators One of the hallmarks of good Python is the judicious use of decorators to optimize, simplify and add new functionality to existing code. Decorators are usually seen as an advanced
More informationlibqsearch A library designed for fast multiple pattern matching
libqsearch A library designed for fast multiple pattern matching Philippe Biondi FOSDEM 2003 February 8-9th, 2003 Outline 1 What is libqsearch? Presentation History Architecture
More informationPython Packaging. Jakub Wasielak
Python Packaging Jakub Wasielak http://blog.pykonik.org/ http://koderek.edu.pl/ facebook.com/startechkrk https://pl.pycon.org/2017/ What? Why? Architecture https://packaging.python.org/current/ Installation
More informationPyZillow Documentation
PyZillow Documentation Release 0.5.5 Hannes Hapke Jul 10, 2017 Contents 1 Installation 3 2 Usage of the GetDeepSearchResults API 5 3 Usage of the GetUpdatedPropertyDetails API 7 4 Contact Information
More informationEECS 4313 Software Engineering Testing
EECS 4313 Software Engineering Testing Topic 03: Test automation / JUnit - Building automatically repeatable test suites Zhen Ming (Jack) Jiang Acknowledgement Some slides are from Prof. Alex Orso Relevant
More informationBuilding a Django Twilio Programmable Chat Application
Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities
More informationLearning Objectives. Description. Your AU Expert(s) Trent Earley Behlen Mfg. Co. Shane Wemhoff Behlen Mfg. Co.
PL17257 JavaScript and PLM: Empowering the User Trent Earley Behlen Mfg. Co. Shane Wemhoff Behlen Mfg. Co. Learning Objectives Using items and setting data in a Workspace Setting Data in Related Workspaces
More informationPython StatsD Documentation
Python StatsD Documentation Release 2.0.3 James Socol January 03, 2014 Contents i ii statsd is a friendly front-end to Graphite. This is a Python client for the statsd daemon. Quickly, to use: >>> import
More informationCS354 gdb Tutorial Written by Chris Feilbach
CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that
More informationXBMC. Ultimate Guide. HenryFord 3/31/2011. Feel free to share this document with everybody!
XBMC Ultimate Guide HenryFord 3/31/2011 Feel free to share this document with everybody! Contents Introduction... 2 XBMC... 3 Download and Install XBMC... 3 Setup the Sources... 3 Additional Settings...
More informationCSE : Python Programming. Decorators. Announcements. The decorator pattern. The decorator pattern. The decorator pattern
CSE 399-004: Python Programming Lecture 12: Decorators April 9, 200 http://www.seas.upenn.edu/~cse39904/ Announcements Projects (code and documentation) are due: April 20, 200 at pm There will be informal
More informationPapyrus Documentation
Papyrus Documentation Release 2.0dev4 Éric Lemoine July 08, 2015 Contents 1 Installing 3 2 Documentation 5 2.1 Creating MapFish Views......................................... 5 2.2 GeoJSON Renderer...........................................
More informationDISQUS. Continuous Deployment Everything. David
DISQUS Continuous Deployment Everything David Cramer @zeeg Continuous Deployment Shipping new code as soon as it s ready (It s really just super awesome buildbots) Workflow Commit (master) Integration
More informationpytest Documentation Release 3.1 holger krekel, trainer and consultant,
pytest Documentation Release 3.1 holger krekel, trainer and consultant, http://merlinux.eu Jul 04, 2017 Contents 1 Installation and Getting Started 3 1.1 Installation................................................
More informationLab Exercise Test First using JUnit
Lunds tekniska högskola Datavetenskap, Nov, 2017 Görel Hedin/Ulf Asklund EDAF45 Programvaruutveckling i grupp projekt Lab Exercise Test First using JUnit Goal This lab is intended to demonstrate basic
More informationPython Mock Tutorial Documentation
Python Mock Tutorial Documentation Release 0.1 Javier Collado Nov 14, 2017 Contents 1 Introduction 3 2 Mock 5 2.1 What is a mock object?.......................................... 5 2.2 What makes mock
More informationPython Utils Documentation
Python Utils Documentation Release 2.2.0 Rick van Hattem Sep 27, 2017 Contents 1 Useful Python Utils 3 1.1 Links................................................... 3 1.2 Requirements for installing:.......................................
More informationfiscalyear Documentation
fiscalyear Documentation Release 0.1.0 Adam J. Stewart Apr 17, 2017 User Documentation 1 Basic Usage 3 1.1 FiscalYear................................................ 3 1.2 FiscalQuarter...............................................
More informationCompletely
Completely Test-Driven ian.truslove@nsidc.org @iantruslove UCAR Software Engineering Assembly, Feb 21, 2012 What s In It For Me? So, that TDD sounds great and all, but what about ? See some techniques
More informationtapi Documentation Release 0.1 Jimmy John
tapi Documentation Release 0.1 Jimmy John July 02, 2014 Contents 1 Why use TAPI? 3 2 Features 5 3 Dependencies 7 4 Installation 9 5 Quick Start 11 6 User Guide 13 6.1 Fundamentals...............................................
More informationHow To Think Like A Computer Scientist, chapter 3; chapter 6, sections
6.189 Day 3 Today there are no written exercises. Turn in your code tomorrow, stapled together, with your name and the file name in comments at the top as detailed in the Day 1 exercises. Readings How
More informationRequest for Comments: 913 September 1984
Network Working Group Request for Comments: 913 Mark K. Lottor MIT September 1984 STATUS OF THIS MEMO This RFC suggests a proposed protocol for the ARPA-Internet community, and requests discussion and
More informationTangeloHub Documentation
TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................
More informationSTEAM Clown & Productions Copyright 2017 STEAM Clown. Page 1
What to add next time you are updating these slides Update slides to have more animation in the bullet lists Verify that each slide has stand alone speaker notes Page 1 Python 3 Running The Python Interpreter
More informationedeposit.amqp.antivirus Release 1.0.1
edeposit.amqp.antivirus Release 1.0.1 February 05, 2015 Contents 1 Installation 3 1.1 Initialization............................................... 3 2 Usage 5 3 Content 7 3.1 Standalone script.............................................
More information: Intro Programming for Scientists and Engineers Final Exam
Final Exam Page 1 of 6 600.112: Intro Programming for Scientists and Engineers Final Exam Peter H. Fröhlich phf@cs.jhu.edu December 20, 2012 Time: 40 Minutes Start here: Please fill in the following important
More informationThe Impact of Django. Armin Ronacher. djangocon europe 2011
The Impact of Django Armin Ronacher djangocon europe 2011 http://lucumr.pocoo.org/talks/ Traveling to the Past What did the World look like in July of 2005? The Year 2005 The initial release of Django
More informationKivy Designer Documentation
Kivy Designer Documentation Release 0.9 Kivy October 02, 2016 Contents 1 Installation 3 1.1 Prerequisites............................................... 3 1.2 Installation................................................
More informationMulticorn: writing foreign data wrappers in python. PostgreSQL Conference Europe 2013 Ronan Dunklau
Multicorn: writing foreign data wrappers in python PostgreSQL Conference Europe 2013 Ronan Dunklau Table des matières 1Multicorn: writing foreign data wrappers in python...4
More informationDRUPAL CON NASHVILLE 2018 DRUPALCON NASHVILLE
DRUPAL CON NASHVILLE 2018 DRUPALCON NASHVILLE DRUPAL CON NASHVILLE 2018 Drupal 8: Let s dive into PHPUnit testing. Drupal 8: Let s dive into PHPUnit testing. Sugandh Khanna Srijan, INDIA Drupal CON NASHVILLE
More informationConfiguring Microsoft Outlook to Connect to Hosted Exchange Service
Configuring Microsoft Outlook to Connect to Hosted Exchange Service Configuring Microsoft Outlook for Hosted Exchange Service Version: 1.0 Updated on: April 27, 2011 Page 1 of 7 TABLE OF CONTENTS Configuring
More informationClient Side JavaScript and AJAX
Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is
More informationPython StatsD Documentation
Python StatsD Documentation Release 3.2.2 James Socol Dec 15, 2017 Contents 1 Installing 3 2 Contents 5 2.1 Configuring Statsd............................................ 5 2.2 Data Types................................................
More informationPython Unit Testing and CI Workflow. Tim Scott, Python Meetup 11/07/17
Python Unit Testing and CI Workflow Tim Scott, Python Meetup 11/07/17 A Little About Me Started as a CoOp Engineer (2007-2008) and Design Engineer at Adtran (2010-2014) Currently work at Abaco Systems
More information