17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

test_cPickle.py<br />

#!/usr/bin/python<br />

# -*- coding: utf8 -*import<br />

cPickle<br />

import unittest<br />

# une classe basique pour nos tests<br />

class T:<br />

a = 0<br />

b = 0<br />

class cPickleTestCase(unittest.TestCase):<br />

def _genere_instance(self):<br />

""" renvoi un objet """<br />

o = T()<br />

o.a = 1<br />

o.b = 2<br />

return o<br />

def test_dump_et_load(self):<br />

""" test l'E/S de cPickle """<br />

# objet de test<br />

o = self._genere_instance()<br />

<strong>Programmation</strong> dirigée par les tests<br />

CHAPITRE 12<br />

# créons un fichier en écriture<br />

fichier = open('/home/tziade/pickled.bin', 'w')<br />

# écrivons l'objet o dans le flux avec la méthode dump de cPickle<br />

cPickle.dump(o, fichier)<br />

# fermons le fichier<br />

fichier.close()<br />

# ouvrons le fichier en lecture<br />

fichier = open('/home/tziade/pickled.bin')<br />

# cPickle.load permet de recharger un objet après une sauvegarde<br />

par dump<br />

o2 = cPickle.load(fic)<br />

# vérifions l'objet renvoyé<br />

assert(isinstance(o2, object))<br />

assert(o2.a == 1)<br />

assert(o2.b == 2)<br />

Tout nouveau scénario de test pour cPickle pourra être implémenté dans une nouvelle<br />

méthode de cette classe, en préfixant son nom par « test ».<br />

405

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!