Пример #1
0
    def test_user_create_submitted_complete(self):
        '''Spread::User Create—Submitted,Complete

        .. note::
            The user is being resubmitted after all components have run.

        If two or more requests occur simultaneously, the secondary and
        subsequent requests are silently ignored.  Simultaneous is defined as
        the time between the first request for a username being accepted and
        the first user information being written to the datastore.

        '''

        for username, properties in self.accounts.iteritems():
            self.mock_collection.insert.side_effect = pymongo.errors.DuplicateKeyError('E11000 duplicate key error index: production.users.$username_1  dup key: {{ : "{0}" }}'.format(username))

            args = [
                mock.MagicMock(),
                self.method,
                None,
                json.dumps(properties),
            ]

            create_user_consumer(*args)

            self.mock_collection.insert.assert_called_once_with(properties)
            self.mock_collection.reset_mock()
Пример #2
0
    def test_user_create_unsubmitted(self):
        '''Spread::User Create—Unsubmitted

        .. note::
            Tests first submission of the user (nothing stored yet).

        '''

        for username, properties in self.accounts.iteritems():
            with mock.patch('.'.join([ self.__module__.replace('test_', '').replace('unit.', ''), 'password_email_consumer', ])) as mock_password_email_consumer:

                # TODO Add more tests for exceptions from mock_password_email_consumer
                # TODO Couple with upper layer by sharing message
                args = [
                    mock.MagicMock(),
                    self.method,
                    None,
                    json.dumps(properties),
                ]

                create_user_consumer(*args)

                mock_password_email_consumer.assert_called_once_with(*args)

            self.mock_collection.insert.assert_called_once_with(properties)
            self.mock_collection.reset_mock()