<[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] >> def mockit(): raise StopIteration
This was meant to be a generator function. Peter corrected my error in leaving out a never reached yield to make it so. My apologies. Putting if False: yield None as the first line in the function has same effect. > but it behaviors differenctly when pass in a mockit() and pass in an > iterator with empty. so i think the code emulates nothing. I hope Peter's addition clarifies and improves the situation. My idea was/is that an iterator comsumer should be tested with an empty iterator. >> def intit(k): >> for i in range(k): yield i > > Now you mean define my own iteration without the help of pmock. That was also my intention above. 'mockit' was just a name, this could be 'mockintit'. > there are still so many other methods in the iterator for pass in, I don't understand this. An iterator only has a trivial .__iter__ method and a usually nontrivial .next method. A generator function makes it easy to create as many iterators as you need. > have to mock them one by one totally manually, its boring and thats the > reason why i want pmock. I am not familiar with pmock, but my impression is that mock objects are for objects that you may not have available, such as a connection to a database or file or instance of an umimplemented class ;-). For such objects, the mock-ness consists in returning canned rather than actual fetched or calculated answers. Iterators, on the other hand, are almost as easily available as ints, lists, etc. Anything with the interator interface and behavior *is* an interator, though you could make one yield mock objects. Do as you wish once you understand whatever choices pmock gives you. Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list