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()
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))
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))
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))
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)
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}])
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()
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()
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()
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}])
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 }])
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 }])