Пример #1
0
    def setUp(self):
        # Create two users to test login and adding object permissions
        self.insert_test_proposals()
        self.lisa_username = '******'
        self.lisa_password = '******'
        self.email = '*****@*****.**'
        self.lisa = User.objects.create_user(username=self.lisa_username,
                                             password=self.lisa_password,
                                             email=self.email)
        self.lisa.first_name = 'Lisa'
        self.lisa.last_name = 'Simpson'
        self.lisa.is_active = 1
        self.lisa.save()
        # Add Lisa to the right proposal and add permissions to add Body's
        update_proposal_permissions(self.lisa, [{
            'code': self.neo_proposal.code
        }])
        update_user_permissions(self.lisa, 'core.add_body')

        # Create the second user, Bart, who is naughty and doesn't get to create Body's
        self.bart_username = '******'
        self.bart_password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.bart_username,
                                             password=self.bart_password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.save()
        # Add Bart to the right proposal and *don't* add permissions to add Body's
        update_proposal_permissions(self.bart, [{
            'code': self.neo_proposal.code
        }])
        super(LOOKProjectPageTest, self).setUp()
Пример #2
0
 def test_adding_user_to_proposal(self):
     # Add Bart to a different proposal to the one he already had
     self.client.login(username='******', password='******')
     bart = User.objects.get(username='******')
     # Proposals have to be Dicts not objects
     new_proposal = [self.proposal2.__dict__]
     update_proposal_permissions(bart, new_proposal)
     saved_proposals = user_proposals(bart)
     # Check the same proposals go in as come out
     self.assertEqual(set([self.proposal2]), set(saved_proposals))
Пример #3
0
 def test_adding_user_two_proposal(self):
     # Add Bart to 2 proposals, he's already a member of 1
     self.client.login(username='******', password='******')
     bart = User.objects.get(username='******')
     # Proposals have to be Dicts not objects
     new_proposals = [self.proposal1.__dict__, self.proposal2.__dict__]
     update_proposal_permissions(bart, new_proposals)
     saved_proposals = user_proposals(bart)
     # Check the same proposals go in as come out
     self.assertEqual(set([self.proposal1, self.proposal2]),
                      set(saved_proposals))
Пример #4
0
 def test_adding_user_two_proposal_inactive(self):
     # Add Bart to 2 proposals, he's already a member of 1, the other is inactive
     self.client.login(username='******', password='******')
     bart = User.objects.get(username='******')
     # Proposals have to be Dicts not objects
     new_proposals = [
         self.proposal1.__dict__, self.proposal_inactive.__dict__
     ]
     update_proposal_permissions(bart, new_proposals)
     saved_proposals = user_proposals(bart)
     # The inactive proposal should not have been added
     self.assertEqual(set([self.proposal1]), set(saved_proposals))
Пример #5
0
    def setUp(self):
        # Create a user to test login
        self.insert_test_proposals()
        self.username = '******'
        self.password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.username,
                                             password=self.password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.save()
        # Add Bart to the right proposal
        update_proposal_permissions(self.bart, [{
            'code': self.neo_proposal.code
        }])
        super(BlockCancelTest, self).setUp()

        sblock_params = {
            'cadence': False,
            'body': self.body,
            'proposal': self.test_proposal,
            'block_start': '2015-04-20 13:00:00',
            'block_end': '2015-04-22 03:00:00',
            'tracking_number': '4242',
            'active': True
        }
        self.test_sblock = SuperBlock.objects.create(pk=3, **sblock_params)

        block_params = {
            'telclass': '2m0',
            'site': 'ogg',
            'body': self.body,
            'superblock': self.test_sblock,
            'obstype': Block.OPT_SPECTRA,
            'block_start': '2015-04-20 13:00:00',
            'block_end': '2015-04-21 03:00:00',
            'request_number': '12345',
            'num_exposures': 1,
            'exp_length': 1800.0,
            'active': True,
            'num_observed': 1,
            'when_observed': '2015-04-21 12:13:14'
        }
        self.test_block = Block.objects.create(pk=4, **block_params)
Пример #6
0
    def setUp(self):
        self.username = '******'
        self.password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.username,
                                             password=self.password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.save()
        # Add Bart to the right proposal
        proposal_params1 = {
            'code': 'LCO2015A-009',
            'title': 'LCOGT NEO Follow-up Network',
            'pi': 'test.user',
            'tag': 'LCOGT',
            'active': True
        }
        proposal_params2 = {
            'code': 'LCOTEST2',
            'title': 'Test Proposal #2',
            'pi': 'test.user',
            'tag': 'LCOGT',
            'active': True
        }
        proposal_params3 = {
            'code': 'LCOTEST3',
            'title': 'Test Proposal - inactive',
            'pi': 'test.user',
            'tag': 'LCOGT',
            'active': False
        }
        p1 = Proposal(**proposal_params1)
        p1.save()

        p2 = Proposal(**proposal_params2)
        p2.save()

        p3 = Proposal(**proposal_params3)
        p3.save()

        self.proposal1 = p1
        self.proposal2 = p2
        self.proposal_inactive = p3
        update_proposal_permissions(self.bart, [{'code': p1.code}])
Пример #7
0
 def setUp(self):
     # Create a user to test login
     self.insert_test_proposals()
     self.username = '******'
     self.password = '******'
     self.email = '*****@*****.**'
     self.bart = User.objects.create_user(username=self.username,
                                          password=self.password,
                                          email=self.email)
     self.bart.first_name = 'Bart'
     self.bart.last_name = 'Simpson'
     self.bart.is_active = 1
     self.bart.save()
     # Add Bart to the right proposal
     update_proposal_permissions(self.bart, [{
         'code': self.neo_proposal.code
     }])
     super(ScheduleObservations, self).setUp()
Пример #8
0
 def setUp(self):
     # Create a superuser to test admin login
     self.insert_test_proposals()
     self.username = '******'
     self.password = '******'
     self.email = '*****@*****.**'
     self.marge = User.objects.create_user(username=self.username,
                                           password=self.password,
                                           email=self.email)
     self.marge.first_name = 'Marge'
     self.marge.last_name = 'Simpson'
     self.marge.is_active = 1
     self.marge.is_staff = 1
     self.marge.is_superuser = 1
     self.marge.save()
     # Add Marge to the right proposal
     update_proposal_permissions(self.marge, [{
         'code': self.neo_proposal.code
     }])
     super(TestAdmin, self).setUp()
Пример #9
0
    def setUp(self):
        settings.MEDIA_ROOT = os.path.abspath(
            os.path.join('photometrics', 'tests', 'test_spectra'))

        # Create a user to test login
        self.insert_test_proposals()
        self.username = '******'
        self.password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.username,
                                             password=self.password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.save()
        # Add Bart to the right proposal
        update_proposal_permissions(self.bart, [{
            'code': self.neo_proposal.code
        }])

        super(TestCalibrationSources, self).setUp()
Пример #10
0
        def setUp(self):

            super(GuideMovieTest, self).setUp()

            settings.DATA_ROOT = os.getcwd()+'/photometrics/tests/'

            self.username = '******'
            self.password = '******'
            self.email = '*****@*****.**'
            self.bart = User.objects.create_user(username=self.username, password=self.password, email=self.email)
            self.bart.first_name = 'Bart'
            self.bart.last_name = 'Simpson'
            self.bart.is_active = 1
            self.bart.save()

            sblock_params = {
                 'cadence'         : False,
                 'body'            : self.body,
                 'proposal'        : self.test_proposal,
                 'block_start'     : '2015-04-20 13:00:00',
                 'block_end'       : '2015-04-24 03:00:00',
                 'tracking_number' : '4242',
                 'active'          : True
               }
            self.test_sblock = SuperBlock.objects.create(pk=3, **sblock_params)

            block_params = {
                 'telclass'        : '2m0',
                 'site'            : 'ogg',
                 'body'            : self.body,
                 'superblock'      : self.test_sblock,
                 'obstype'         : Block.OPT_SPECTRA,
                 'block_start'     : '2015-04-20 13:00:00',
                 'block_end'       : '2015-04-21 03:00:00',
                 'request_number' : '12345',
                 'num_exposures'   : 1,
                 'num_observed'    : 1,
                 'when_observed'   : '2015-04-21 02:00:00',
                 'exp_length'      : 1800.0,
                 'active'          : True,
               }
            self.test_block = Block.objects.create(pk=3, **block_params)
            fparams = {
                'sitecode'      : 'F65',
                'filename'      : 'sp233/a265962.sp233.txt',
                'exptime'       : 1800.0,
                'midpoint'      : '2015-04-21 00:00:00',
                'frametype'     : Frame.SPECTRUM_FRAMETYPE,
                'block'         : self.test_block,
                'frameid'       : 1,
               }
            self.spec_frame = Frame.objects.create(**fparams)

            sblock2_params = {
                 'cadence'         : False,
                 'body'            : self.body,
                 'proposal'        : self.test_proposal,
                 'block_start'     : '2015-04-20 13:00:00',
                 'block_end'       : '2015-04-22 03:00:00',
                 'tracking_number' : '4243',
                 'active'          : False
               }
            self.test_sblock2 = SuperBlock.objects.create(pk=4, **sblock2_params)

            block2_params = {
                 'telclass'        : '2m0',
                 'site'            : 'ogg',
                 'body'            : self.body,
                 'superblock'      : self.test_sblock2,
                 'obstype'         : Block.OPT_IMAGING,
                 'block_start'     : '2015-04-22 13:00:00',
                 'block_end'       : '2015-04-24 03:00:00',
                 'request_number' : '54321',
                 'num_exposures'   : 1,
                 'num_observed'    : 1,
                 'exp_length'      : 1800.0,
                 'active'          : False,
               }
            self.test_block2 = Block.objects.create(pk=4, **block2_params)

            msblock_params = {
                 'cadence'         : False,
                 'body'            : self.body,
                 'proposal'        : self.test_proposal,
                 'block_start'     : '2018-01-01 00:00:00',
                 'block_end'       : '2018-01-01 03:00:00',
                 'tracking_number' : '4244',
                 'active'          : True
               }
            self.test_msblock = SuperBlock.objects.create(pk=5, **msblock_params)
            mblock1_params = {
                 'telclass'        : '2m0',
                 'site'            : 'ogg',
                 'body'            : self.body,
                 'superblock'      : self.test_msblock,
                 'obstype'         : Block.OPT_SPECTRA,
                 'block_start'     : '2018-01-01 00:00:00',
                 'block_end'       : '2018-01-01 02:00:00',
                 'request_number' : '54322',
                 'num_exposures'   : 1,
                 'num_observed'    : 1,
                 'exp_length'      : 1800.0,
                 'active'          : True,
               }
            self.test_mblock1 = Block.objects.create(pk=5, **mblock1_params)
            mfparams1 = {
                'sitecode'      : 'F65',
                'filename'      : 'sp233/a265962.sp233.txt',
                'exptime'       : 1800.0,
                'midpoint'      : '2018-01-01 01:00:00',
                'frametype'     : Frame.SPECTRUM_FRAMETYPE,
                'block'         : self.test_mblock1,
                'frameid'       : 1,
               }
            self.mspec_frame1 = Frame.objects.create(**mfparams1)
            mblock2_params = {
                 'telclass'        : '2m0',
                 'site'            : 'ogg',
                 'body'            : self.body,
                 'superblock'      : self.test_msblock,
                 'obstype'         : Block.OPT_SPECTRA,
                 'block_start'     : '2018-01-01 01:00:00',
                 'block_end'       : '2018-01-01 03:00:00',
                 'request_number' : '54323',
                 'num_exposures'   : 1,
                 'num_observed'    : 1,
                 'exp_length'      : 1800.0,
                 'active'          : True,
               }
            self.test_mblock2 = Block.objects.create(pk=6, **mblock2_params)
            mfparams2 = {
                'sitecode'      : 'F65',
                'filename'      : 'sp233/a265962.sp233.txt',
                'exptime'       : 1800.0,
                'midpoint'      : '2018-01-01 02:00:00',
                'frametype'     : Frame.SPECTRUM_FRAMETYPE,
                'block'         : self.test_mblock2,
                'frameid'       : 1,
               }
            self.mspec_frame2 = Frame.objects.create(**mfparams2)

            update_proposal_permissions(self.bart, [{'code': self.neo_proposal.code}])
Пример #11
0
    def setUp(self):
        super(LighCurvePlotTest, self).setUp()
        settings.DATA_ROOT = self.test_dir
        settings.MEDIA_ROOT = self.test_dir
        self.lcname = '433_738215_ALCDEF.txt'
        lcpath = os.path.abspath(os.path.join('photometrics', 'tests'))
        save_to_default(os.path.join(lcpath, self.lcname), lcpath)

        params = {
            'name': '433',
            'abs_mag': 21.0,
            'slope': 0.15,
            'epochofel': '2015-03-19 00:00:00',
            'meananom': 325.2636,
            'argofperih': 85.19251,
            'longascnode': 147.81325,
            'orbinc': 8.34739,
            'eccentricity': 0.1896865,
            'meandist': 1.2176312,
            'source_type': 'U',
            'elements_type': 'MPC_MINOR_PLANET',
            'active': True,
            'origin': 'M',
            'ingest': '2015-05-11 17:20:00',
            'score': 90,
            'discovery_date': '2015-05-10 12:00:00',
            'update_time': '2015-05-18 05:00:00',
            'num_obs': 17,
            'arc_length': 3.123456789,
            'not_seen': 0.423456789,
            'updated': True,
        }
        self.body2, created = Body.objects.get_or_create(pk=2, **params)

        MockDateTime.change_date(2021, 12, 10)
        self.body2.save_physical_parameters({
            'parameter_type': 'P',
            'value': 5.27,
            'error': .0015,
            'quality': 5,
            'notes': "testy test note"
        })

        params = {
            'name': 'C/2017 K2',
            'abs_mag': 7.0,
            'slope': 2.0,
            'epochofel': '2021-07-05 00:00:00',
            'epochofperih': '2022-12-19 05:50:00',
            'argofperih': 236.19001,
            'longascnode': 88.244,
            'orbinc': 87.55297,
            'eccentricity': 1.0005709,
            'perihdist': 1.7974686,
            'source_type': 'C',
            'elements_type': 'MPC_COMET',
            'active': True,
            'origin': 'O',
            'ingest': '2015-05-11 17:20:00',
            'score': 90,
            'discovery_date': '2015-05-10 12:00:00',
            'update_time': '2015-05-18 05:00:00',
            'num_obs': 17,
            'arc_length': 3.123456789,
            'not_seen': 0.423456789,
            'updated': True,
            'meandist': None,
            'meananom': None,
        }
        self.comet, created = Body.objects.get_or_create(pk=3, **params)

        self.username = '******'
        self.password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.username,
                                             password=self.password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.is_staff = 1
        self.bart.is_superuser = 1
        self.bart.save()

        update_proposal_permissions(self.bart, [{
            'code': self.neo_proposal.code
        }])
Пример #12
0
    def setUp(self):
        super(SpectraplotTest, self).setUp()
        settings.MEDIA_ROOT = self.test_dir
        spectradir = os.path.abspath(
            os.path.join('photometrics', 'tests', 'test_spectra'))

        spec_path = 'target_2df_ex.fits'
        save_to_default(os.path.join(spectradir, spec_path), spectradir)
        analog_path = 'analog_2df_ex.fits'
        save_to_default(os.path.join(spectradir, analog_path), spectradir)
        analog2_path = 'test_2df_ex.fits'
        save_to_default(os.path.join(spectradir, analog2_path), spectradir)

        self.username = '******'
        self.password = '******'
        self.email = '*****@*****.**'
        self.bart = User.objects.create_user(username=self.username,
                                             password=self.password,
                                             email=self.email)
        self.bart.first_name = 'Bart'
        self.bart.last_name = 'Simpson'
        self.bart.is_active = 1
        self.bart.save()

        # build individual target blocks
        sblock_params = {
            'cadence': False,
            'body': self.body,
            'proposal': self.test_proposal,
            'block_start': '2015-04-20 13:00:00',
            'block_end': '2015-04-24 03:00:00',
            'tracking_number': '4242',
            'active': True
        }
        self.test_sblock = SuperBlock.objects.create(pk=3, **sblock_params)

        block_params = {
            'telclass': '2m0',
            'site': 'coj',
            'body': self.body,
            'superblock': self.test_sblock,
            'obstype': Block.OPT_SPECTRA,
            'block_start': '2019-07-27 13:00:00',
            'block_end': '2019-07-28 03:00:00',
            'request_number': '1878696',
            'num_exposures': 1,
            'exp_length': 1800.0,
            'active': True,
            'when_observed': datetime(2019, 7, 27, 16, 42, 51)
        }
        self.test_block = Block.objects.create(pk=3, **block_params)
        save_dataproduct(self.test_block, spec_path, DataProduct.FITS_SPECTRA)

        analog_block_params = {
            'telclass': '2m0',
            'site': 'coj',
            'body': self.body,
            'calibsource': self.calib,
            'superblock': self.test_sblock,
            'obstype': Block.OPT_SPECTRA_CALIB,
            'block_start': '2019-07-27 13:00:00',
            'block_end': '2019-07-28 03:00:00',
            'request_number': '1878697',
            'num_exposures': 1,
            'exp_length': 1800.0,
            'active': True,
            'when_observed': datetime(2019, 7, 27, 18, 42, 51)
        }
        self.analog_block = Block.objects.create(pk=7, **analog_block_params)
        save_dataproduct(self.analog_block, analog_path,
                         DataProduct.FITS_SPECTRA)

        fparams = {
            'sitecode': 'E10',
            'filename': 'sp233/a265962.sp233.txt',
            'exptime': 1800.0,
            'midpoint': '2015-04-21 00:00:00',
            'frametype': Frame.SPECTRUM_FRAMETYPE,
            'block': self.test_block,
            'frameid': 1,
        }
        self.spec_frame = Frame.objects.create(**fparams)

        afparams = {
            'sitecode': 'E10',
            'filename': 'sp233/a265962.sp233.txt',
            'exptime': 1800.0,
            'midpoint': '2015-04-21 00:00:00',
            'frametype': Frame.SPECTRUM_FRAMETYPE,
            'block': self.analog_block,
            'frameid': 7,
        }
        self.analogspec_frame = Frame.objects.create(**afparams)

        sblock2_params = {
            'cadence': False,
            'body': self.body,
            'proposal': self.test_proposal,
            'block_start': '2015-04-20 13:00:00',
            'block_end': '2015-04-22 03:00:00',
            'tracking_number': '4243',
            'active': False
        }
        self.test_sblock2 = SuperBlock.objects.create(pk=4, **sblock2_params)

        block2_params = {
            'telclass': '2m0',
            'site': 'ogg',
            'body': self.body,
            'superblock': self.test_sblock2,
            'obstype': Block.OPT_IMAGING,
            'block_start': '2015-04-22 13:00:00',
            'block_end': '2015-04-24 03:00:00',
            'request_number': '54321',
            'num_exposures': 1,
            'exp_length': 1800.0,
            'active': False,
            'when_observed': datetime(2015, 7, 27, 16, 42, 51)
        }
        self.test_block2 = Block.objects.create(pk=4, **block2_params)

        save_dataproduct(self.test_block2,
                         spec_path,
                         DataProduct.FITS_SPECTRA,
                         filename='test2_2df_ex.fits')

        analog_block2_params = {
            'telclass': '2m0',
            'site': 'coj',
            'calibsource': self.calib,
            'superblock': self.test_sblock2,
            'obstype': Block.OPT_SPECTRA_CALIB,
            'block_start': '2019-07-27 13:00:00',
            'block_end': '2019-07-28 03:00:00',
            'request_number': '54321',
            'num_exposures': 1,
            'exp_length': 1800.0,
            'active': True,
            'when_observed': datetime(2019, 7, 27, 18, 42, 51)
        }
        self.analog_block2 = Block.objects.create(pk=10,
                                                  **analog_block2_params)
        save_dataproduct(self.analog_block2, analog2_path,
                         DataProduct.FITS_SPECTRA)

        # Build multi-frame Blocks
        msblock_params = {
            'cadence': False,
            'body': self.body,
            'proposal': self.test_proposal,
            'block_start': '2018-01-01 00:00:00',
            'block_end': '2018-01-01 03:00:00',
            'tracking_number': '4244',
            'active': True
        }
        self.test_msblock = SuperBlock.objects.create(pk=5, **msblock_params)
        mblock1_params = {
            'telclass': '2m0',
            'site': 'coj',
            'body': self.body,
            'superblock': self.test_msblock,
            'obstype': Block.OPT_SPECTRA,
            'block_start': '2018-01-01 00:00:00',
            'block_end': '2018-01-01 02:00:00',
            'request_number': '54322',
            'num_exposures': 2,
            'num_observed': 1,
            'exp_length': 1800.0,
            'active': True,
            'when_observed': datetime(2019, 7, 27, 16, 42, 51)
        }
        self.test_mblock1 = Block.objects.create(pk=5, **mblock1_params)
        save_dataproduct(self.test_mblock1,
                         spec_path,
                         DataProduct.FITS_SPECTRA,
                         filename='test3_2df_ex.fits')
        save_dataproduct(self.test_mblock1,
                         spec_path,
                         DataProduct.FITS_SPECTRA,
                         filename='test3.2_2df_ex.fits')

        mfparams1 = {
            'sitecode': 'F65',
            'filename': 'sp233/a265962.sp233.txt',
            'exptime': 1800.0,
            'midpoint': '2018-01-01 01:00:00',
            'frametype': Frame.SPECTRUM_FRAMETYPE,
            'block': self.test_mblock1,
            'frameid': 10,
        }
        self.mspec_frame1 = Frame.objects.create(**mfparams1)
        mblock2_params = {
            'telclass': '2m0',
            'site': 'ogg',
            'body': self.body,
            'superblock': self.test_msblock,
            'obstype': Block.OPT_SPECTRA,
            'block_start': '2018-01-01 01:00:00',
            'block_end': '2018-01-01 03:00:00',
            'request_number': '54323',
            'num_exposures': 1,
            'num_observed': 1,
            'exp_length': 1800.0,
            'active': True,
            'when_observed': datetime(2019, 7, 27, 16, 42, 51)
        }
        self.test_mblock2 = Block.objects.create(pk=6, **mblock2_params)
        save_dataproduct(self.test_mblock2,
                         spec_path,
                         DataProduct.FITS_SPECTRA,
                         filename='test4_2df_ex.fits')

        mfparams2 = {
            'sitecode': 'F65',
            'filename': 'sp233/a265962.sp233.txt',
            'exptime': 1800.0,
            'midpoint': '2018-01-01 02:00:00',
            'frametype': Frame.SPECTRUM_FRAMETYPE,
            'block': self.test_mblock2,
            'frameid': 11,
        }
        self.mspec_frame2 = Frame.objects.create(**mfparams2)

        # make empty block
        sblock_params_empty = msblock_params
        self.test_sblock_empty = SuperBlock.objects.create(
            pk=6, **sblock_params_empty)
        block_params_empty = mblock2_params
        block_params_empty['superblock'] = self.test_sblock_empty
        block_params_empty['when_observed'] = datetime(2019, 9, 27, 16, 42, 51)
        self.test_block_empty = Block.objects.create(**block_params_empty)
        frame_params_empty = mfparams2
        frame_params_empty['block'] = self.test_block_empty
        self.spec_frame_empty = Frame.objects.create(**frame_params_empty)

        update_proposal_permissions(self.bart, [{
            'code': self.neo_proposal.code
        }])