summaryrefslogtreecommitdiffhomepage
path: root/test/test_usr1.py
diff options
context:
space:
mode:
authorAndrey Zelenkov <zelenkov@nginx.com>2019-10-23 16:59:53 +0300
committerAndrey Zelenkov <zelenkov@nginx.com>2019-10-23 16:59:53 +0300
commit38cfe4cf3d9fd2a4ed0f3949586126a7b8144e8e (patch)
treec3e4e07c3f2f3bf4f8b99deb7994b8953a4a33b5 /test/test_usr1.py
parent1033cfa3b0255fb23ecd87cc0c4fb4ebb6fedff3 (diff)
downloadunit-38cfe4cf3d9fd2a4ed0f3949586126a7b8144e8e.tar.gz
unit-38cfe4cf3d9fd2a4ed0f3949586126a7b8144e8e.tar.bz2
Tests: added USR1 signal test for unit.log.
Diffstat (limited to 'test/test_usr1.py')
-rw-r--r--test/test_usr1.py92
1 files changed, 92 insertions, 0 deletions
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()