Exemple #1
0
 def test_import_csv(self):
     csv = [
         'name,type,ra,dec', 'm13,SIDEREAL,250.421,36.459',
         'm27,SIDEREAL,299.901,22.721'
     ]
     result = import_targets(csv)
     self.assertEqual(len(result['targets']), 2)
Exemple #2
0
 def test_import_csv(self):
     csv = [
         'identifier,name,type,ra,dec',
         'm13,Hercules Globular Cluster,SIDEREAL,250.421,36.459',
         'm27,Dumbbell Nebula,SIDEREAL,299.901,22.721'
     ]
     result = import_targets(csv)
     self.assertEqual(len(result['targets']), 2)
Exemple #3
0
 def post(self, request):
     csv_file = request.FILES['target_csv']
     csv_stream = StringIO(csv_file.read().decode('utf-8'), newline=None)
     result = import_targets(csv_stream)
     messages.success(request,
                      'Targets created: {}'.format(len(result['targets'])))
     for error in result['errors']:
         messages.warning(request, error)
     return redirect(reverse('tom_targets:list'))
Exemple #4
0
 def test_import_with_extra(self):
     csv = [
         'identifier,name,type,ra,dec,redshift',
         'm13,Hercules Globular Cluster,SIDEREAL,250.421,36.459,5',
         'm27,Dumbbell Nebula,SIDEREAL,299.901,22.721,5'
     ]
     result = import_targets(csv)
     self.assertEqual(len(result['targets']), 2)
     for target in result['targets']:
         self.assertTrue(TargetExtra.objects.filter(target=target, key='redshift', value='5').exists())
Exemple #5
0
 def test_import_csv_with_multiple_names(self):
     csv = [
         'name,type,ra,dec,name1,name2',
         'm13,SIDEREAL,250.421,36.459,Tom,Joe',
         'm27,SIDEREAL,299.901,22.721,John,Doe'
     ]
     result = import_targets(csv)
     self.assertEqual(len(result['targets']), 2)
     aliases = {'m13': 'Tom,Joe', 'm27': 'John,Doe'}
     for target_name in aliases:
         target = Target.objects.get(name=target_name)
         for alias in aliases[target_name].split(','):
             self.assertTrue(
                 TargetName.objects.filter(target=target,
                                           name=alias).exists())
Exemple #6
0
    def post(self, request):
        """
        Handles the POST requests to this view. Creates a StringIO object and passes it to ``import_targets``.

        :param request: the request object passed to this view
        :type request: HTTPRequest
        """
        csv_file = request.FILES['target_csv']
        csv_stream = StringIO(csv_file.read().decode('utf-8'), newline=None)
        result = import_targets(csv_stream)
        messages.success(request,
                         'Targets created: {}'.format(len(result['targets'])))
        for error in result['errors']:
            messages.warning(request, error)
        return redirect(reverse('tom_targets:list'))