tests.py 4.28 KB
from django.test import TestCase
from pyrosapp.models import *
from django.contrib.auth.models import User
from django.utils import timezone


class CountryTests(TestCase):

    def test_creation(self):
        Country.objects.create(name="France", desc="Test", quota=1)
        france = Country.objects.get(name="France")
        self.assertEqual(france.name, "France")
        self.assertEqual(france.desc, "Test")
        self.assertEqual(france.quota, 1)
        france.quota = -1
        france.delete()
        france.save()
        Country.objects.create(name="Mexique")
        countries = Country.objects.all()
        self.assertEqual(countries.count(), 2)
        countries[0].name = "Toto"
        countries[0].save()


class DeviceTests(TestCase):

    def test_creation(self):
        device = Device.objects.create()
        countries = Country.objects.all()
        self.assertEqual(countries.count(), 0, "perdu !")


class RequestTests(TestCase):

    def setUp(self):
        strat1 = StrategyObs.objects.create(name="strat1")
        france = Country.objects.create(name="France")
        admin = UserLevel.objects.create(name="Admin")
        usr1 = User.objects.create(username="Haribo")
        haribo = PyrosUser.objects.create(
            user=usr1, country=france, userlevel=admin)
        sp1 = ScientificProgram.objects.create(name="sp1")
        req1 = Request.objects.create(
            name="req1", pyros_user=haribo, scientific_program=sp1)
        Alert.objects.create(strategyobs=strat1, request=req1)

        sched = Schedule.objects.create()
        seq1 = Sequence.objects.create(
            name="seq1", request=req1)

        dev_tel = Device.objects.create(name="telescope")
        dev_det = Device.objects.create(name="detector")
        tel = Telescope.objects.create(device=dev_tel)
        det = Detector.objects.create(device=dev_det, telescope=tel)
        alb1 = Album.objects.create(name="alb1", sequence=seq1, detector=det)

        dev_fil = Device.objects.create(name="filter")
        fil = Filter.objects.create(device=dev_fil, detector=det)
        plan1 = Plan.objects.create(name="plan1", album=alb1, filter=fil)
        img1 = Image.objects.create(name="img1", plan=plan1)
        img2 = Image.objects.create(name="img2", plan=plan1)

    def test_request_access(self):
        alert = Alert.objects.get()
        self.assertEqual(alert.request.name, "req1")

        req1 = Request.objects.get(name="req1")
        req1.name = "reqtiti"
        req1.save()
        # j'ai saved req1, pourtant alert1.request.name est toujours le même
        self.assertEqual(alert.request.name, "req1")

        alert = Alert.objects.get()
        # j'ai refait un get de mon alert, donc c'est mis à jour
        self.assertEqual(alert.request.name, "reqtiti")

        alert.request.name = "reqtoto"
        alert.save()
        self.assertEqual(req1.name, "reqtiti")
        self.assertEqual(alert.request.name, "reqtoto")

        req1 = Request.objects.get()
        self.assertEqual(req1.name, "reqtiti")

        alert.request.save()
        req1 = Request.objects.get()
        self.assertEqual(req1.name, "reqtoto")

    def test_reinit_base(self):
        req1 = Request.objects.get()
        self.assertEqual(req1.name, "req1")

    def test_full_request(self):
        req1 = Request.objects.get()
        self.assertEqual(req1.sequences.count(), 1)
        albums = req1.sequences.all()[0].albums
        self.assertEqual(albums.count(), 1)
        images = albums.all()[0].plans.all()[0].images
        self.assertEqual(images.count(), 2)
        img1 = images.get(name="img1")
        img1.name = "img1.1"
        img11 = req1.sequences.get().albums.get().plans.get().images.get(
            name="img1")  # j'ai toujours pas sauvegardé mon image
        img1.save()
        img11 = req1.sequences.get().albums.get().plans.get().images.get(
            name="img1.1")  # j'ai sauvegardé mon image

        req1 = Request.objects.get()
        img1 = req1.sequences.get().albums.get().plans.get().images.get(
            name="img1.1")

        img11 = Image.objects.get(name="img1.1")
        img11.name = "img1.2"
        img11.save()

        self.assertEqual(img1.name, "img1.1")  # img1 et img11 sont différents
        img1 = req1.sequences.get().albums.get().plans.get().images.get(
            name="img1.2")