This edition first published 2014
2014 David Sale
Registered office
John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex, PO19 8SQ, United Kingdom
For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse the copyright material in this book please see our website at www.wiley.com .
The right of the author to be identified as the author of this work has been asserted in accordance with the Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
Trademarks: Wiley and the Wiley logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United States and/or other countries, and may not be used without written permission. Python is a registered trademark of the Python Software Foundation. All other trademarks are the property of their respective owners. John Wiley & Sons, Ltd. is not associated with any product or vendor mentioned in the book.
A catalogue record for this book is available from the British Library.
ISBN 978-1-118-90122-9 (paperback); ISBN 978-1-118-90124-3 (ePub); 978-1-118-90125-0 (ePDF)
Set in 10/12.5 ChaparralPro-Light by TCS/SPS
Printed in the USA by Bind-Rite
Publishers Acknowledgements
Some of the people who helped bring this book to market include the following:
Editorial and Production
VP Consumer and Technology Publishing Director: Michelle Leete
Associate DirectorBook Content Management: Martin Tribe
Associate Publisher: Chris Webb
Executive Commissioning Editor: Craig Smith
Project Editor: Sydney Argenta
Copy Editor: Debbye Butler
Technical Editors: Jeff Yonker, Alex Bradbury, Andrew Robinson, and Harry Percival
Editorial Manager: Rev Mengle
Senior Project Editor: Sara Shlaer
Editorial Assistant: Claire Johnson
Marketing
Marketing Manager: Lorna Mein
Assistant Marketing Manager: Dave Allen
About the Author
DAVID SALE is a Software Developer currently working at British Sky Broadcasting (BSkyB) in London, UK as of 2014. He obtained a degree in Computing at the University of Leeds. Whilst studying Computing, Python was taught as the main programming language of the course. This is very different to many other Universitys where languages such as Java are taught initially.
This is where Davids interest in Python first began and he has looked to further his knowledge in what has become his core programming language.
Following University, David joined BSkyB in September 2011, as part of the Software Engineering Academy graduate scheme. The scheme proved to be an excellent platform for David to launch his career in software development.
Notably, David has worked on a RESTful Python application that models BSkyBs products and offers, applies complex pricing rules and business logic, whilst delivering a completely data driven approach to the problem. David has also worked on a project using a Hypermedia approach to sharing data across the application stack to deliver an innovative solution delivering sales to existing customers of BSkyB.
David quickly began making his presence known in the Python Community, having written web articles on various Python topics. David has also given talks on Behaviour Driven Development and Agile Development at the EuroPython conference, which was held in Florence, Italy in 2012 and 2013 respectively, with videos of the talks available on YouTube.
David follows Agile Development principles whilst working at BSkyB, with pair programming and Test/Behaviour Driven Development a must. From this focus on testing from such an early point in his career, he has picked up many tips and techniques in Python testing which allows development of quality software, which the business has up most confidence in. It is hoped the tips and advice in this book allow you to learn and improve your daily testing skills in Python.
You can find more on Davids current and previous projects at: www.dsale.co.uk .
Acknowledgments
First and foremost I would like to thank Craig Smith, Executive Commissioning Editor at Wiley for approaching me with the opportunity to write this book and giving me the confidence in my writing to go for this project; Sydney Jones Argenta, Project Editor, for editing the book so diligently and keeping me up to date throughout the project; Jeff Younker, Alex Bradbury, Andrew Robinson, and Harry Percival Technical Editors for ensuring my code was up to the standard expected by the community and the best it could be.
Secondly, Id like to give my gratitude to my employer British Sky Broadcasting (Sky). I joined Sky through their Software Engineering Academy graduate scheme and have since progressed to a Software Developer. Without their investment in me, I would not have learned some of the skills and advice that I can now share in this book. They also happily granted me permission to work on this book and helped me find the time to deliver the project alongside my work commitments. Please visit http://workforsky.com if you are interested in joining the team or www.skygraduates.com for more on graduate schemes at Sky.
Id like to thank my partner Katherine Sweeney, for being so patient in supporting me whilst working on this book. Without her love and support, I would never have dreamed to deliver a project like this and she constantly reminds me to believe in myself. This book is an achievement for us together and I am thankful to have her by my side.
Finally, I would like to thank my brothers Stefan and Matthew Sale for always supporting me in my endeavours but in particular my parents, Ronald and Jennifer Sale. From an early age I have always been taught to work hard and reach for your goals. This book is testament to those words and without the drive to achieve that they have passed on to me; I could never have seen such a big project through. This book is for them and all the people who have supported me in my career as a Software Developer.