diff options
author | Andrey Zelenkov <zelenkov@nginx.com> | 2019-01-28 17:16:50 +0300 |
---|---|---|
committer | Andrey Zelenkov <zelenkov@nginx.com> | 2019-01-28 17:16:50 +0300 |
commit | 7dddfe2143e28dcde147d8420f0bd129babaec3a (patch) | |
tree | 5aa0463318a82e026cb01f57b1169a02ff04f433 | |
parent | eced6bc97284478d67bfec04e204e4cd212167d9 (diff) | |
download | unit-7dddfe2143e28dcde147d8420f0bd129babaec3a.tar.gz unit-7dddfe2143e28dcde147d8420f0bd129babaec3a.tar.bz2 |
Tests: added test for reading body from IO::Handle-like object.
Diffstat (limited to '')
-rw-r--r-- | test/perl/body_io_fake/IOFake.pm | 33 | ||||
-rw-r--r-- | test/perl/body_io_fake/psgi.pl | 11 | ||||
-rw-r--r-- | test/test_perl_application.py | 14 |
3 files changed, 58 insertions, 0 deletions
diff --git a/test/perl/body_io_fake/IOFake.pm b/test/perl/body_io_fake/IOFake.pm new file mode 100644 index 00000000..d2542aa5 --- /dev/null +++ b/test/perl/body_io_fake/IOFake.pm @@ -0,0 +1,33 @@ +package IOFake; + +sub new { + my $class = shift; + my $errors = shift; + my $self = {}; + + $self->{_count} = 2; + $self->{_errors} = $errors; + + bless $self, $class; + return $self; +} + +sub getline() { + my $self = shift; + + if ($self->{_count} > 0) { + return $self->{_count}--; + } + + $self->{_errors}->print('IOFake getline() $/ is ' . ${ $/ }); + + return; +} + +sub close() { + my $self = shift; + + $self->{_errors}->print('IOFake close() called'); +}; + +1; diff --git a/test/perl/body_io_fake/psgi.pl b/test/perl/body_io_fake/psgi.pl new file mode 100644 index 00000000..6990bfaf --- /dev/null +++ b/test/perl/body_io_fake/psgi.pl @@ -0,0 +1,11 @@ +use File::Basename; +use lib dirname (__FILE__); +use IOFake; + +my $app = sub { + my ($environ) = @_; + + my $io = IOFake->new($environ->{'psgi.errors'}); + + return ['200', [ 'Content-Length' => '2' ], $io]; +}; diff --git a/test/test_perl_application.py b/test/test_perl_application.py index 2dfae66c..7850e231 100644 --- a/test/test_perl_application.py +++ b/test/test_perl_application.py @@ -185,5 +185,19 @@ class TestUnitPerlApplication(unit.TestUnitApplicationPerl): self.assertEqual(resp['body'], '0123456789', 'keep-alive 2') + @unittest.expectedFailure + def test_perl_body_io_fake(self): + self.load('body_io_fake') + + self.assertEqual(self.get()['body'], '21', 'body io fake') + + self.assertIsNotNone( + self.search_in_log(r'\[error\].+IOFake getline\(\) \$\/ is \d+'), + 'body io fake $/ value') + + self.assertIsNotNone( + self.search_in_log(r'\[error\].+IOFake close\(\) called'), + 'body io fake close') + if __name__ == '__main__': TestUnitPerlApplication.main() |