pyinotify, process_IN_CLOSE_WRITE, wie test schreiben?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
python_experiments
User
Beiträge: 1
Registriert: Samstag 24. Mai 2014, 16:43

Hallo,

habe hier ein stück code das die veränderung einer datei überwacht. würde jetzt gerne einen test dazu schreiben.
aber wie mancht man das am besten?

habe den verdacht das die methode IN_CLOSE_WRITE teilweise mehr als ein "close" ausgibt.

wie kommt man an die ausgabe von print zur überprüfung? oder wie baut man den code so um das es einen rückgabewert gibt mit dem gearbeitet werden kann?
die mthode: IN_CLOSE... wird ja von python irgendwo aufgerufen

Code: Alles auswählen

import pyinotify

class OnWriteHandler(pyinotify.ProcessEvent):
	def process_IN_CLOSE_WRITE(self, event):
		print "close"

	

def watch(file):
	wm = pyinotify.WatchManager()
	# Instanciate a new WatchManager (will be used to store watches).
	handler = OnWriteHandler()
	notifier = pyinotify.Notifier(wm, default_proc_fun=handler)
	
	# Associate this WatchManager with a Notifier (will be used to report and
	# process events).
	wm.add_watch(file, pyinotify.ALL_EVENTS)
	# Loop forever and handle events.
	notifier.loop()


if __name__ == '__main__':

	import optparse, os
	parser = optparse.OptionParser()
	parser.add_option('-f', '--file', help='pcap capture file', dest='file', action='store')
	(opts, args) = parser.parse_args()

	watch(opts.file)
BlackJack

@python_experiments: Was genau möchtest Du denn testen? Das die Methode aufgerufen wird wenn eine beobachtete Datei geschlossen wird? Das ist eigentlich nicht *Deine* Aufgabe denn damit würdest Du testen ob `pynotify` seinen Job richtig macht, also ob *der* Code funktioniert. Das sollte in Tests von den `pynotify`-Autoren geprüft werden, und nicht von *Benutzern* dieser Bibliothek.

Deine Option scheint mir übrigens keine zu sein. Die Datei *muss* man ja angeben, womit es semantisch keine Option mehr ist sondern ein Argument. `argparse` ist da IMHO schönder als `optparse` weil dort Argumente sehr ähnlich wie Optionen angibt, und auch die Hilfe dafür generiert wird.
Antworten