29 lines
		
	
	
		
			870 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			870 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""root tests"""
 | 
						|
from base64 import b64encode
 | 
						|
 | 
						|
from django.conf import settings
 | 
						|
from django.shortcuts import reverse
 | 
						|
from django.test import Client, TestCase
 | 
						|
 | 
						|
 | 
						|
class TestRoot(TestCase):
 | 
						|
    """Test root application"""
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        super().setUp()
 | 
						|
        self.client = Client()
 | 
						|
 | 
						|
    def test_monitoring_error(self):
 | 
						|
        """Test monitoring without any credentials"""
 | 
						|
        response = self.client.get(reverse("metrics"))
 | 
						|
        self.assertEqual(response.status_code, 401)
 | 
						|
 | 
						|
    def test_monitoring_ok(self):
 | 
						|
        """Test monitoring with credentials"""
 | 
						|
        creds = "Basic " + b64encode(f"monitor:{settings.SECRET_KEY}".encode()).decode(
 | 
						|
            "utf-8"
 | 
						|
        )
 | 
						|
        auth_headers = {"HTTP_AUTHORIZATION": creds}
 | 
						|
        response = self.client.get(reverse("metrics"), **auth_headers)
 | 
						|
        self.assertEqual(response.status_code, 200)
 |