summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/python/log_body/wsgi.py9
-rw-r--r--test/test_access_log.py37
-rw-r--r--test/test_usr1.py92
3 files changed, 101 insertions, 37 deletions
diff --git a/test/python/log_body/wsgi.py b/test/python/log_body/wsgi.py
new file mode 100644
index 00000000..9dcb1b0c
--- /dev/null
+++ b/test/python/log_body/wsgi.py
@@ -0,0 +1,9 @@
+def application(environ, start_response):
+ content_length = int(environ.get('CONTENT_LENGTH', 0))
+ body = bytes(environ['wsgi.input'].read(content_length))
+
+ environ['wsgi.errors'].write(body)
+ environ['wsgi.errors'].flush()
+
+ start_response('200', [('Content-Length', '0')])
+ return []
diff --git a/test/test_access_log.py b/test/test_access_log.py
index 02d9cb2c..94f6e7bf 100644
--- a/test/test_access_log.py
+++ b/test/test_access_log.py
@@ -298,42 +298,5 @@ Connection: close
'change',
)
- def test_access_log_reopen(self):
- self.load('empty')
-
- log_path = self.testdir + '/access.log'
-
- self.assertTrue(self.waitforfiles(log_path), 'open')
-
- log_path_new = self.testdir + '/new.log'
-
- os.rename(log_path, log_path_new)
-
- self.get()
-
- self.assertIsNotNone(
- self.wait_for_record(r'"GET / HTTP/1.1" 200 0 "-" "-"', 'new.log'),
- 'rename new',
- )
- self.assertFalse(os.path.isfile(log_path), 'rename old')
-
- with open(self.testdir + '/unit.pid', 'r') as f:
- pid = f.read().rstrip()
-
- call(['kill', '-s', 'USR1', pid])
-
- self.assertTrue(self.waitforfiles(log_path), 'reopen')
-
- self.get(url='/usr1')
-
- self.assertIsNotNone(
- self.wait_for_record(r'"GET /usr1 HTTP/1.1" 200 0 "-" "-"'),
- 'reopen 2',
- )
- self.assertIsNone(
- self.search_in_log(r'/usr1', 'new.log'), 'rename new 2'
- )
-
-
if __name__ == '__main__':
TestAccessLog.main()
diff --git a/test/test_usr1.py b/test/test_usr1.py
new file mode 100644
index 00000000..dd9292c7
--- /dev/null
+++ b/test/test_usr1.py
@@ -0,0 +1,92 @@
+import os
+import unittest
+from subprocess import call
+from unit.applications.lang.python import TestApplicationPython
+
+
+class TestUSR1(TestApplicationPython):
+ prerequisites = {'modules': ['python']}
+
+ def test_usr1_access_log(self):
+ self.load('empty')
+
+ log_path = self.testdir + '/access.log'
+
+ self.assertIn(
+ 'success',
+ self.conf('"' + log_path + '"', 'access_log'),
+ 'access log configure',
+ )
+
+ self.assertTrue(self.waitforfiles(log_path), 'open')
+
+ log_path_new = self.testdir + '/new.log'
+
+ os.rename(log_path, log_path_new)
+
+ self.get()
+
+ self.assertIsNotNone(
+ self.wait_for_record(r'"GET / HTTP/1.1" 200 0 "-" "-"', 'new.log'),
+ 'rename new',
+ )
+ self.assertFalse(os.path.isfile(log_path), 'rename old')
+
+ with open(self.testdir + '/unit.pid', 'r') as f:
+ pid = f.read().rstrip()
+
+ call(['kill', '-s', 'USR1', pid])
+
+ self.assertTrue(self.waitforfiles(log_path), 'reopen')
+
+ self.get(url='/usr1')
+
+ self.assertIsNotNone(
+ self.wait_for_record(
+ r'"GET /usr1 HTTP/1.1" 200 0 "-" "-"', 'access.log'
+ ),
+ 'reopen 2',
+ )
+ self.assertIsNone(
+ self.search_in_log(r'/usr1', 'new.log'), 'rename new 2'
+ )
+
+ @unittest.skip('not yet')
+ def test_usr1_unit_log(self):
+ self.load('log_body')
+
+ log_path = self.testdir + '/unit.log'
+ log_path_new = self.testdir + '/new.log'
+
+ os.rename(log_path, log_path_new)
+
+ body = 'body_for_a_log_new'
+ self.post(body=body)
+
+ self.assertIsNotNone(
+ self.wait_for_record(body, 'new.log'), 'rename new'
+ )
+ self.assertFalse(os.path.isfile(log_path), 'rename old')
+
+ with open(self.testdir + '/unit.pid', 'r') as f:
+ pid = f.read().rstrip()
+
+ call(['kill', '-s', 'USR1', pid])
+
+ self.assertTrue(self.waitforfiles(log_path), 'reopen')
+
+ body = 'body_for_a_log_unit'
+ self.post(body=body)
+
+ self.assertIsNotNone(self.wait_for_record(body), 'rename new')
+ self.assertIsNone(self.search_in_log(body, 'new.log'), 'rename new 2')
+
+ # merge two log files into unit.log to check alerts
+
+ with open(log_path, 'w') as unit_log, \
+ open(log_path_new, 'r') as new_log:
+ unit_log.write(new_log.read())
+
+
+if __name__ == '__main__':
+ TestUSR1.main()