@@ -500,3 +500,88 @@ def test_get_meshagent_url_docker(self):
500500 r ,
501501 "http://tactical-meshcentral:4443/meshagents?id=4&meshid=abc123&installflags=0" ,
502502 )
503+
504+
505+ class TestMonitoring (TacticalTestCase ):
506+ url = "/core/status/"
507+
508+ def setUp (self ):
509+ self .setup_client ()
510+ self .setup_coresettings ()
511+
512+ # prometheus tests
513+ def test_prometheus_missing_auth_header_request (self ):
514+ r = self .client .get (self .url )
515+ self .assertEqual (r .status_code , 400 )
516+
517+ def test_prometheus_missing_token_config (self ):
518+ r = self .client .get (self .url , HTTP_Authorization = "Bearer MySuperTestSecret" )
519+ self .assertEqual (r .status_code , 401 )
520+
521+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
522+ def test_prometheus_incorrect_token_request (self ):
523+ r = self .client .get (self .url , HTTP_Authorization = "Bearer NotMySuperTestSecret" )
524+ self .assertEqual (r .status_code , 401 )
525+
526+ @override_settings (DOCKER_BUILD = True )
527+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
528+ def test_prometheus_correct_docker_build_request (self ):
529+ r = self .client .get (self .url , HTTP_Authorization = "Bearer MySuperTestSecret" )
530+ self .assertEqual (r .status_code , 200 )
531+
532+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
533+ def test_prometheus_correct_request (self ):
534+ r = self .client .get (self .url , HTTP_Authorization = "Bearer MySuperTestSecret" )
535+ self .assertEqual (r .status_code , 200 )
536+
537+ # invalid tests
538+ def test_invalid_request (self ):
539+ r = self .client .put (self .url )
540+ self .assertEqual (r .status_code , 400 )
541+ self .assertEqual (
542+ r .content ,
543+ b"Invalid request type\n " ,
544+ )
545+
546+ # json tests
547+ def test_json_invalid_json_request (self ):
548+ r = self .client .post (
549+ self .url ,
550+ data = "I am not json!" ,
551+ content_type = "application/json" ,
552+ )
553+ self .assertEqual (r .status_code , 400 )
554+
555+ def test_json_invalid_payload_request (self ):
556+ r = self .client .post (
557+ self .url , data = {"notauth" : "NotMySuperTestSecret" }, format = "json"
558+ )
559+ self .assertEqual (r .status_code , 400 )
560+
561+ def test_json_missing_token_request (self ):
562+ r = self .client .post (
563+ self .url , data = {"auth" : "MySuperTestSecret" }, format = "json"
564+ )
565+ self .assertEqual (r .status_code , 401 )
566+
567+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
568+ def test_json_incorrect_token_request (self ):
569+ r = self .client .post (
570+ self .url , data = {"auth" : "NotMySuperTestSecret" }, format = "json"
571+ )
572+ self .assertEqual (r .status_code , 401 )
573+
574+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
575+ def test_json_correct_request (self ):
576+ r = self .client .post (
577+ self .url , data = {"auth" : "MySuperTestSecret" }, format = "json"
578+ )
579+ self .assertEqual (r .status_code , 200 )
580+
581+ @override_settings (DOCKER_BUILD = True )
582+ @override_settings (MON_TOKEN = "MySuperTestSecret" )
583+ def test_json_correct_docker_build_request (self ):
584+ r = self .client .post (
585+ self .url , data = {"auth" : "MySuperTestSecret" }, format = "json"
586+ )
587+ self .assertEqual (r .status_code , 200 )
0 commit comments