#(c):Benja Fallenstein """ Tests for the VersionBlock and DiffBlock implementations of StormFilerBlock. """ import gzz, java from gzz.storm.util import TestVersion, VersionBlock, DiffBlock from java.io import ByteArrayInputStream as In from java.io import ByteArrayOutputStream as Out def read(out): return str(java.lang.String(out.toByteArray())) def testVersionBlock(): version = TestVersion(89) header = gzz.storm.headers.VerbatimHeader822() header.add("Content-Type", "x-foo/x-foo") format = TestVersion.Format() block = VersionBlock(header, version, format) out = Out() block.writeTo(out) s = read(out) print repr(s) assert s == ( 'Content-Type: x-foo/x-foo\r\n' '\r\n' '89' ) block.checkId(gzz.storm.BlockId( 'storm:block:01863883B2323BAF40B16BDB580EA97431AEDCFB1F')) try: block.checkId(gzz.storm.BlockId( 'storm:block:01863883B88742323BAF6BDB580EA97431AED22518')) except gzz.storm.BlockId.WrongIdException: pass else: assert 0 def testDiffBlock(): diff = TestVersion.Diff(714) header = gzz.storm.headers.VerbatimHeader822() header.add("Content-Type", "x-foo/x-bar") format = TestVersion.Format() headerFrom = gzz.storm.headers.VerbatimHeader822() headerFrom.add("Content-Type", "x-foo/x-foo") headerTo = gzz.storm.headers.VerbatimHeader822() headerTo.add("Content-Type", "x-foo/x-foo") block = DiffBlock(header, diff, headerFrom, headerTo, format) out = Out() block.writeTo(out) s = read(out) print repr(s) assert s == ( 'Content-Type: x-foo/x-bar\r\n' '\r\n' 'Content-Type: x-foo/x-foo\r\n' '\r\n' 'Content-Type: x-foo/x-foo\r\n' '\r\n' '714' ) block.checkId(gzz.storm.BlockId( 'storm:block:0103AB399BEC7D18C80F78505CF7FBE4B9A8CDDF19')) try: block.checkId(gzz.storm.BlockId( 'storm:block:01863883B88742323BAF6BDB580EA97431AED22518')) except gzz.storm.BlockId.WrongIdException: pass else: assert 0