def _get_user_from_entry(self, entry):
     '''
     Finds the user corresponding to this entry, by matching email
     first, and username if that fails. May create a new user if still
     no joy.
     '''
     try:
         if entry.author_detail.email != None:
             return User.objects.get(email=entry.author_detail.email)
     except (User.DoesNotExist, AttributeError):
         pass
     # Handle spaces in name
     username_ = entry.author_detail.name.strip().replace(" ", "_")
     try:
         return User.objects.get(username=username_)
     except User.DoesNotExist:
         if len(username_) < 1:
             logger.warn("Skipping dataset. Dataset found with blank username.")
             return None
         if not IngestOptions.ALLOW_USER_CREATION:
             logging.getLogger(__name__).info("Skipping dataset. ALLOW_USER_CREATION disabled. Datasets found for user '{0}' ({1}) but user doesn't exist".format(
                     entry.author_detail.name, getattr(entry.author_detail, "email", "no email")))
             return None
     
     user = User(username=username_)
     user.save()
     UserProfile(user=user).save()
     return user
Exemple #2
0
def _create_test_data():
    user = User(username='******',
                first_name="Voltaire",
                email='*****@*****.**')
    user.save()
    return (_create_experiment(user, False), _create_experiment(user,
                                                                True), user)
Exemple #3
0
def _create_test_data():
    user = User(username='******',
                first_name="Voltaire",
                email='*****@*****.**')
    user.save()
    return (_create_experiment(user, False),
            _create_experiment(user, True), user)
 def testPersisterUsesAuthorNameAsUsername(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user)
Exemple #5
0
 def testPersisterUsesAuthorNameAsUsername(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user)
 def testPersisterHandlesSpacesInUsername(self):
     # Get entry and use a name with a space in it
     feed, entry = self._getTestEntry()
     entry.author_detail.name = 'Tommy Atkins'
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user)
Exemple #7
0
 def testPersisterHandlesSpacesInUsername(self):
     # Get entry and use a name with a space in it
     feed, entry = self._getTestEntry()
     entry.author_detail.name = 'Tommy Atkins'
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user)
def _create_test_data():
    user = User(username='******',
                first_name="Voltaire",
                email='*****@*****.**')
    user.save()
    UserProfile(user=user).save()
    experiment = Experiment(title='Norwegian Blue',
                            description='Parrot + 40kV',
                            created_by=user)
    experiment.public_access = Experiment.PUBLIC_ACCESS_METADATA
    experiment.save()
    return (experiment, user)
def _create_test_data():
    user = User(username='******',
                first_name="Voltaire",
                email='*****@*****.**')
    user.save()
    UserProfile(user=user).save()
    experiment = Experiment(title='Norwegian Blue',
                            description='Parrot + 40kV',
                            created_by=user)
    experiment.public_access = Experiment.PUBLIC_ACCESS_METADATA
    experiment.save()
    return (experiment, user)
 def _get_user_from_entry(self, entry):
     try:
         if entry.author_detail.email != None:
             return User.objects.get(email=entry.author_detail.email)
     except (User.DoesNotExist, AttributeError):
         pass
     try:
         return User.objects.get(username=entry.author_detail.name)
     except User.DoesNotExist:
         pass
     user = User(username=entry.author_detail.name)
     user.save()
     return user
 def testPersisterStoresEntryMetadata(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     parameterset = dataset.getParameterSets().get(schema=AtomImportSchemas.get_schema(Schema.DATASET))
     expect(parameterset) != None
     psm = ParameterSetManager(parameterset)
     expect(psm.get_param("EntryID").get()).to_equal(entry.id)
     expect(psm.get_param("Updated").name.isDateTime()).to_be_truthy()
     # Compare against non-timezoned update time
     expect(psm.get_param("Updated", True)).to_equal(iso8601.parse_date(entry.updated))
 def _get_user_from_entry(self, entry):
     try:
         if entry.author_detail.email != None:
             return User.objects.get(email=entry.author_detail.email)
     except (User.DoesNotExist, AttributeError):
         pass
     # Handle spaces in name
     username_ = entry.author_detail.name.strip().replace(" ", "_")
     try:
         return User.objects.get(username=username_)
     except User.DoesNotExist:
         pass
     user = User(username=username_)
     user.save()
     UserProfile(user=user).save()
     return user
 def _get_user_from_entry(self, entry):
     try:
         if entry.author_detail.email != None:
             return User.objects.get(email=entry.author_detail.email)
     except (User.DoesNotExist, AttributeError):
         pass
     # Handle spaces in name
     username_ = entry.author_detail.name.strip().replace(" ", "_")
     try:
         return User.objects.get(username=username_)
     except User.DoesNotExist:
         pass
     user = User(username=username_)
     user.save()
     UserProfile(user=user).save()
     return user
Exemple #14
0
 def testPersisterStoresEntryMetadata(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     parameterset = dataset.getParameterSets() \
                           .get(schema=AtomImportSchemas. \
                                       get_schema(Schema.DATASET))
     expect(parameterset) != None
     psm = ParameterSetManager(parameterset)
     expect(psm.get_param('EntryID').get()).to_equal(entry.id)
     expect(psm.get_param('Updated').name.isDateTime()).to_be_truthy()
     # Compare against non-timezoned update time
     expect(psm.get_param('Updated', True)) \
         .to_equal(iso8601.parse_date(entry.updated))
Exemple #15
0
 def testPersisterPrefersAuthorEmailToMatchUser(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     # Create user to associate with dataset
     user2 = User(username="******", email='*****@*****.**')
     user2.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user2)
 def testPersisterPrefersAuthorEmailToMatchUser(self):
     # Create user to associate with dataset
     user = User(username="******")
     user.save()
     # Create user to associate with dataset
     user2 = User(username="******", email='*****@*****.**')
     user2.save()
     feed, entry = self._getTestEntry()
     p = AtomPersister()
     dataset = p.process(feed, entry)
     eq_(dataset.get_first_experiment().created_by, user2)