from institute.models import Institute
from plan.models import Environment
from promotion.models import Banner
from django.utils import timezone
from wikiazma.myTest import MyTestCase

# Create your tests here.

class PromotionTest(MyTestCase):
    
    def setUp(self):
        self.setBaseUser()
        self.setUpHelpers()
        Environment.objects.update(default_max_institutes_per_user=100, default_max_collaborators_per_institute=100)
        self.institute = self.instituteHelper.create_institute(name="unit_test_institute")
        
      
    
    def test_banner_list_successful(self):
        Banner.objects.create(name = 'test',up_time = timezone.now(),non_sandbox_visibility_institute = False,sandbox_visibility_institute =True,data = {"1":"2"})
        (response_data, status_code, error_message) = self.PromotionHelper.banner_list_helper(context_institute_id = self.institute['id'],skip = 0 ,take = 5)
        self.assertEqual(200, status_code, error_message)
        self.assertEqual('ok', response_data['status'], error_message)
        self.assertEqual('Successful', response_data['message'], error_message)
        self.assertEqual(1, len(response_data['data']['banners']), error_message)
        #######################################################################################################
        sandbox_institute = Institute.objects.get(name='sandbox', user=self.user)
        Banner.objects.create(name = 'test',up_time = timezone.now(),non_sandbox_visibility_institute = True,sandbox_visibility_institute =False,data = {"4":"5"})
        (response_data, status_code, error_message) = self.PromotionHelper.banner_list_helper(context_institute_id = sandbox_institute.id,skip = 0 ,take = 5)
        self.assertEqual(200, status_code, error_message)
        self.assertEqual('ok', response_data['status'], error_message)
        self.assertEqual('Successful', response_data['message'], error_message)
        self.assertEqual(1, len(response_data['data']['banners']), error_message)
    def test_banner_list_error(self):
        (response_data, status_code, error_message) = self.PromotionHelper.banner_list_helper(context_institute_id = '',skip = 0 ,take = 5)

        self.assertEqual(400, status_code, error_message)
        self.assertEqual('validation_error', response_data['status'], error_message)
        self.assertEqual('Some fields are not valid', response_data['message'], error_message)

        (response_data, status_code, error_message) = self.PromotionHelper.banner_list_helper(context_institute_id = 'b539ece7-8eb9-423e-9d7f-e3d3ed561edd',skip = 0 ,take = 5)

        self.assertEqual(400, status_code, error_message)
        self.assertEqual('error', response_data['status'], error_message)
        self.assertEqual('BadRequest', response_data['message'], error_message)