SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Python	Meetup	octobre	2016
les	tests	en	python
Introduction
Meetup	Python	Nantes	-	mai	2016
	( )	 	Arthur	Lutz Logilab @arthurlutz @logilab
Plan
introduction	aux	tests	unittaires
lancer	les	tests	:	unittest	de	base,	py.test,	nose,	pytest,	etc.
tox	pour	lancer	les	test	dans	des	virtualenvs
l'intégration	continue	avec	python	(jenkins,	travis,	etc.)
les	tests	en	prod	:	healthchecks	au	cœur	de	l'application
introduction	aux	tests
unitaires
TDD	-	test	driven	developpement	-	dévelopement	piloté	par	les
tests
test	unitaire
passer	des	prints	et	vérification	humaine	à	un	point	OK/not	OK
documenter	des	exemples	d'usage	de	son	code
https://en.wikipedia.org/wiki/Test-driven_development
https://fr.wikipedia.org/wiki/Test_driven_development
https://fr.wikipedia.org/wiki/Test_unitaire
En	python
module	unittest
ne	pas	utiliser	assert	(assertTrue	à	la	place)
https://docs.python.org/3.5/library/unittest.html
assertEqual(a,	b)
assertNotEqual(a,	b)
assertTrue(x)
assertFalse(x)
Écrire	un	test
classes	héritant	de	unittest.TestCase
toutes	les	methodes	commencant	par	test	sont	considérées
comme	un	test	unittaire
Exemple	(de	la	doc)
				import	unittest
				class	TestStringMethods(unittest.TestCase):
								def	test_upper(self):
												self.assertEqual('foo'.upper(),	'FOO')
								def	test_isupper(self):
												self.assertTrue('FOO'.isupper())
												self.assertFalse('Foo'.isupper())
								def	test_split(self):
												s	=	'hello	world'
												self.assertEqual(s.split(),	['hello',	'world'])
												#	check	that	s.split	fails	when	the	separator	is	not	a	string
												with	self.assertRaises(TypeError):
																s.split(2)
				if	__name__	==	'__main__':
								unittest.main()
Avant	/	après	les	tests
def	setUp()
def	tearDown()
setUpClass	et	tearDownClass
setup_method	et	teardown_method
setup_function	et	teardown_function
https://en.wikipedia.org/wiki/Test_fixture#Software
Extensions
couvertures	de	tests	(pycoverage,	python-coverage,	etc.)
linters	(pychecker,	pylint,	flake8,	etc.)
doctests	https://docs.python.org/2/library/doctest.html
https://en.wikipedia.org/wiki/Fuzz_testing
Mock
mock	or	not	to	mock	(or	where	to	mock?)
unittest.mock	:
https://en.wikipedia.org/wiki/Mock_object
https://docs.python.org/3/library/unittest.mock.html
			>>>	from	unittest.mock	import	MagicMock
			>>>	thing	=	ProductionClass()
			>>>	thing.method	=	MagicMock(return_value=3)
			>>>	thing.method(3,	4,	5,	key='value')
			3
			>>>	thing.method.assert_called_with(3,	4,	5,	key='value')
Mock	encore
decorator	@patch
context	manager	with	Patch...
quelques	exemples	d'assertions
assert_called_with
assert_called_once_with
assert_any_call
assert_has_calls
assert_not_called
reset_mock
Ne	pas	mocker
postgresql	à	la	demande	:	
Python	fixtures	and	daemon	managing	tools	for	functional	testing:
http://faitout.fedorainfracloud.org/
https://github.com/jd/pifpaf
platform	specific	1/2
django
cubicweb	-	populate	DB
test	with	real	live	database
https://docs.djangoproject.com/en/1.10/topics/testing/
https://factoryboy.readthedocs.io/en/latest/
https://docs.cubicweb.org/book/devrepo/testing.html
https://docs.cubicweb.org/book/devrepo/testing.html#testing-
on-a-real-life-database
platform	specific	2/2
salt
from	salttesting	import	TestCase
infrastructure:
testinfra	:	
https://docs.saltstack.com/en/latest/topics/development/tests/unit.html
http://testinfra.readthedocs.io/en/latest/
Selenium
http://www.seleniumhq.org/
https://github.com/SeleniumHQ/selenium/tree/master/py
pip	install	selenium
Selenium	exemple
		import	unittest
		from	selenium	import	webdriver
		class	AfpyTestCase(unittest.TestCase):
				def	setUp(self):
								self.browser	=	webdriver.Firefox()
								self.addCleanup(self.browser.quit)
				def	testPageTitle(self):
								self.browser.get('http://nantes.afpy.org/')
								self.assertIn('Python-Nantes',	self.browser.title)
		if	__name__	==	'__main__':
				unittest.main(verbosity=2)
lancer	les	tests
unittest	de	base
unit2
pytest	(logilab-common)
py.test	(next	pytest)
nose	&	nose2
etc
https://wiki.python.org/moin/PythonTestingToolsTaxonomy
unittest.main
En	bas	de	chaque	fichier	python	:
Pour	le	lancer	:
if	__name__	==	'__main__':
			unittest.main()
#	python	test_this.py
pytest	(logilab-common)
historique
testlib	-	extension	de	unittest
pytest	-	lanceur	de	tests
selection	tags	avec	des	decorateurs	(tags)
supprimé	au	profit	de	nouveaux	projets
unit2
unittest2	est	un	backport	python2	du	nouveau	unittest	python3
unit2	==	python	-m	unittest2
unit2	discover
py.test
py.test	(bientôt	pytest)
http://docs.pytest.org/en/latest/
$	pip	install	pytest
py.test
py.test
py.test	-x	:	s'arrête	à	la	première	erreur
py.test	--maxfail=3	:	s'arrête	au	bout	de	3	erreurs
py.test	selection
py.test	test_module.py
py.test	test_mod.py::test_func
py.test	test_mod.py::TestClass::test_method
py.test	affichage
py.test	--tb=long	#	the	default	informative	traceback	formatting
py.test	--tb=native	#	the	Python	standard	library	formatting
py.test	--tb=short	#	a	shorter	traceback	format
py.test	--tb=line	#	only	one	line	per	failure
py.test	avancé
markers	
fixtures	
parametrisation	
py.test	--fixtures
plugins	pip	search	pytest	(ou	apt-cache	search	pytest)
http://docs.pytest.org/en/latest/mark.html
http://docs.pytest.org/en/latest/fixture.html
http://docs.pytest.org/en/latest/parametrize.html
nose	&	nose2
Commandes	:
nosetests
nose2
https://nose.readthedocs.io/en/latest/
https://github.com/nose-devs/nose2
tox	pour	lancer	les	test	dans
des	virtualenvs
https://tox.readthedocs.io/en/latest/
#	content	of:	tox.ini	,	put	in	same	dir	as	setup.py
[tox]
envlist	=	py26,py27
[testenv]
deps=pytest							#	install	pytest	in	the	venvs
commands=py.test		#	or	'nosetests'	or	...
tox	est	amour
Slides	:	
Vidéo	:	
http://tox.jehaisleprintemps.net/#/
http://video-pyconfr2015.paulla.asso.fr/108_-
_Bruno_Bord_-_tox_est_amour.html
Accélerer	tox	:	caches
server	pypi	local	:	
dans	docker	(avec	apt-cacher-ng	et	squid)
http://doc.devpi.net/latest/
https://github.com/ebar0n/proxy-cache
L'intégration	continue	avec
python
	(monopole	avec	github	?)
	(tests	sous	windows)
etc.
hudson
jenkins
apycot
travis
bitbucket	pipelines
drone.io
appveyor
Jenkins
Python	Plugin	:	
Shining	Panda	:	
https://wiki.jenkins-
ci.org/display/JENKINS/Python+Plugin
https://wiki.jenkins-
ci.org/display/JENKINS/ShiningPanda+Plugin
Matrix	Project
Matrix	Project	pour	plusieurs	environnements	:
jenkins-job-builder	(description	de	vos	projets	en	YAML)	:
https://wiki.jenkins-ci.org/display/JENKINS/Matrix+Project+Plugin
http://docs.openstack.org/infra/jenkins-job-
builder/project_matrix.html
Junit	/	xUnit
fichiers	XML	de	description	des	tests	réussis	ou	non
il	existe	aussi	des	formats	xml	pour	la	couverture	de	tests
(Corbetura,	etc.)
https://en.wikipedia.org/wiki/XUnit
Quand	lancer	les	tests	?
Sur	chaque	pull	request	?
sur	chaque	tête
avant	un	push	?	avant	un	commit	?
sur	l'ensemble	?
sur	quel	sous-ensemble	?
les	tests	en	prod	:
healthchecks	au	cœur	de
l'application
Inspirations
pyconfr	2015	:	Benoit	Bryon,	Peopledoc
Kelsey	Hightower	-	healthz:	Stop	reverse	engineering	applications
and	start	monitoring	from	the	inside
Vidéo	:	
Code	:	
https://blog.notmyidea.org/pyconfr-2015-hospital-des-tests-en-
prod.html
https://vimeo.com/173610242
https://github.com/kelseyhightower/app-healthz
healthchecks	-	principe
lancer	des	tests	directement	au	coeur	de	l'application	en
production
complément	de	la	supervision	traditionnelle
permet	de	différentier	entre	"le	process	tourne"	et
"le	service	répond"
particulièrement	utile	pour	le	déploiement	continue	et	la
répartission	de	charge	dynamique
healthchecks	en	python
https://github.com/python-hospital/hospital
https://github.com/danielfrg/django-hospital
https://github.com/healthchecks/healthchecks
https://github.com/ludia/pyramid_health
Fin
Des	questions	?
Des	ajouts	?
Présentation	:	
Contact	:	 	
http://slides.logilab.fr/2016/meetup_python_nantes_tests/
@arthurlutz @logilab

Contenu connexe

En vedette

Learning notes of r for python programmer (Temp1)
Learning notes of r for python programmer (Temp1)Learning notes of r for python programmer (Temp1)
Learning notes of r for python programmer (Temp1)Chia-Chi Chang
 
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...Matt Harrison
 
PyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and MorePyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and MoreMatt Harrison
 
Operator Overloading
Operator Overloading  Operator Overloading
Operator Overloading Sardar Alam
 
Installing Python on Mac
Installing Python on MacInstalling Python on Mac
Installing Python on MacWei-Wen Hsu
 
Lesson1 python an introduction
Lesson1 python an introductionLesson1 python an introduction
Lesson1 python an introductionArulalan T
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonYi-Fan Chu
 
Introduction to Python - Running Notes
Introduction to Python - Running NotesIntroduction to Python - Running Notes
Introduction to Python - Running NotesRajKumar Rampelli
 
Introduction to facebook java script sdk
Introduction to facebook java script sdk Introduction to facebook java script sdk
Introduction to facebook java script sdk Yi-Fan Chu
 
Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Yi-Fan Chu
 
Mastering python lesson2
Mastering python lesson2Mastering python lesson2
Mastering python lesson2Ruth Marvin
 
Running openCV project on Mac OS
Running openCV project on Mac OSRunning openCV project on Mac OS
Running openCV project on Mac OSWei-Wen Hsu
 
Concise Notes on Python
Concise Notes on PythonConcise Notes on Python
Concise Notes on PythonWei-Wen Hsu
 
Python Basis Tutorial
Python Basis TutorialPython Basis Tutorial
Python Basis Tutorialmd sathees
 
Uncommon Python - What is special in Python
Uncommon Python -  What is special in PythonUncommon Python -  What is special in Python
Uncommon Python - What is special in PythonDeepu S Nath
 
Python Hype?
Python Hype?Python Hype?
Python Hype?Brian Ray
 

En vedette (20)

Introduction to Advanced Javascript
Introduction to Advanced JavascriptIntroduction to Advanced Javascript
Introduction to Advanced Javascript
 
Learning notes of r for python programmer (Temp1)
Learning notes of r for python programmer (Temp1)Learning notes of r for python programmer (Temp1)
Learning notes of r for python programmer (Temp1)
 
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
Analysis of Fatal Utah Avalanches with Python. From Scraping, Analysis, to In...
 
PyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and MorePyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and More
 
Operator Overloading
Operator Overloading  Operator Overloading
Operator Overloading
 
Installing Python on Mac
Installing Python on MacInstalling Python on Mac
Installing Python on Mac
 
Python for All
Python for All Python for All
Python for All
 
Lesson1 python an introduction
Lesson1 python an introductionLesson1 python an introduction
Lesson1 python an introduction
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python master class part 1
Python master class part 1Python master class part 1
Python master class part 1
 
Introduction to Python - Running Notes
Introduction to Python - Running NotesIntroduction to Python - Running Notes
Introduction to Python - Running Notes
 
Introduction to facebook java script sdk
Introduction to facebook java script sdk Introduction to facebook java script sdk
Introduction to facebook java script sdk
 
Introduction to facebook javascript sdk
Introduction to facebook javascript sdk Introduction to facebook javascript sdk
Introduction to facebook javascript sdk
 
Mastering python lesson2
Mastering python lesson2Mastering python lesson2
Mastering python lesson2
 
Lec02 structures (2)
Lec02 structures (2)Lec02 structures (2)
Lec02 structures (2)
 
Running openCV project on Mac OS
Running openCV project on Mac OSRunning openCV project on Mac OS
Running openCV project on Mac OS
 
Concise Notes on Python
Concise Notes on PythonConcise Notes on Python
Concise Notes on Python
 
Python Basis Tutorial
Python Basis TutorialPython Basis Tutorial
Python Basis Tutorial
 
Uncommon Python - What is special in Python
Uncommon Python -  What is special in PythonUncommon Python -  What is special in Python
Uncommon Python - What is special in Python
 
Python Hype?
Python Hype?Python Hype?
Python Hype?
 

Similaire à Meetup Python Nantes - les tests en python

PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en pythongburet
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !vincent aniort
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Martin Latrille
 
Ce qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOSCe qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOSNiji
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitairespprem
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8aro_tech
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Arthur Lutz
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftArthur Lutz
 
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...Pierre-Henri Gache
 
Marathon De L Industrialisation
Marathon De L IndustrialisationMarathon De L Industrialisation
Marathon De L IndustrialisationPHPPRO
 

Similaire à Meetup Python Nantes - les tests en python (20)

PyConFR - testons en python
PyConFR - testons en pythonPyConFR - testons en python
PyConFR - testons en python
 
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
Node, Grunt et leurs copains qui font de l’accessibilité tout seuls !
 
Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)Présentation de Django @ Orange Labs (FR)
Présentation de Django @ Orange Labs (FR)
 
Ce qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOSCe qu'il faut retenir de la FrenchKit iOS
Ce qu'il faut retenir de la FrenchKit iOS
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
HaifaFtirich2016
HaifaFtirich2016HaifaFtirich2016
HaifaFtirich2016
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Delphi et les tests unitaires
Delphi et les tests unitairesDelphi et les tests unitaires
Delphi et les tests unitaires
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
 
Marathon De L Industrialisation
Marathon De L IndustrialisationMarathon De L Industrialisation
Marathon De L Industrialisation
 

Plus de Arthur Lutz

Donnez des couleurs a votre terminal
Donnez des couleurs a votre terminalDonnez des couleurs a votre terminal
Donnez des couleurs a votre terminalArthur Lutz
 
PyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deploymentPyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deploymentArthur Lutz
 
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensuMeetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensuArthur Lutz
 
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup  - septembre 2017 - formulas and salt-cloudSalt Paris Meetup  - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup - septembre 2017 - formulas and salt-cloudArthur Lutz
 
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...Arthur Lutz
 
Python Nantes Meetup - Collecter les erreurs avec Sentry
Python Nantes Meetup -  Collecter les erreurs avec SentryPython Nantes Meetup -  Collecter les erreurs avec Sentry
Python Nantes Meetup - Collecter les erreurs avec SentryArthur Lutz
 
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et SentryCollecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et SentryArthur Lutz
 
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafanacfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and GrafanaArthur Lutz
 
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...Arthur Lutz
 
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...Arthur Lutz
 
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debianDebian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debianArthur Lutz
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Arthur Lutz
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...Arthur Lutz
 
Générer des stats sur son infra salt
Générer des stats sur son infra saltGénérer des stats sur son infra salt
Générer des stats sur son infra saltArthur Lutz
 
Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"Arthur Lutz
 
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride NantesPrésentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride NantesArthur Lutz
 

Plus de Arthur Lutz (16)

Donnez des couleurs a votre terminal
Donnez des couleurs a votre terminalDonnez des couleurs a votre terminal
Donnez des couleurs a votre terminal
 
PyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deploymentPyParis2018 - Python tooling for continuous deployment
PyParis2018 - Python tooling for continuous deployment
 
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensuMeetup Nantes Monitoring - janvier 2018 - netdata & sensu
Meetup Nantes Monitoring - janvier 2018 - netdata & sensu
 
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup  - septembre 2017 - formulas and salt-cloudSalt Paris Meetup  - septembre 2017 - formulas and salt-cloud
Salt Paris Meetup - septembre 2017 - formulas and salt-cloud
 
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
Meetup Nantes Monitoring - Supervision d'une application web (et de son archi...
 
Python Nantes Meetup - Collecter les erreurs avec Sentry
Python Nantes Meetup -  Collecter les erreurs avec SentryPython Nantes Meetup -  Collecter les erreurs avec Sentry
Python Nantes Meetup - Collecter les erreurs avec Sentry
 
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et SentryCollecter les erreurs de description d'infrastructure avec Salt et Sentry
Collecter les erreurs de description d'infrastructure avec Salt et Sentry
 
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafanacfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
cfgmgmtcamp 2016 - Roll out active Supervision with Salt, Graphite and Grafana
 
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
FOSDEM 2016 - After describing your infrastructure as code, reuse that to mon...
 
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
Salt Paris meetup - décembre 2015 - La supervision pilotée par Salt avec carb...
 
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debianDebian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
Debian meetup nantes 2015 : Salt pour gérer de nombreux serveurs debian
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
 
Générer des stats sur son infra salt
Générer des stats sur son infra saltGénérer des stats sur son infra salt
Générer des stats sur son infra salt
 
Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"Présentation "Outils agiles : revue de code & publication continue"
Présentation "Outils agiles : revue de code & publication continue"
 
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride NantesPrésentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
Présentation éclair "Retours d'experience data.bnf.fr" - datapride Nantes
 

Meetup Python Nantes - les tests en python