def setUp(self): self.email_queue = EmailQueueTransaction(transaction.manager)
class EmailQueueTransactionTestCase(unittest.TestCase): layer = FunctionalLayer def setUp(self): self.email_queue = EmailQueueTransaction(transaction.manager) def test_add_some_emails(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.enqueue_email('me', 'him', 'mail 2', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 3', 'content') aggregated = sorter( [('me', {'him': [('mail 3', 'content')]}), ('him', {'me': [('mail 1', 'content'), ('mail 2', 'content')]})]) self.assertEqual(aggregated, sorter(self.email_queue)) def test_add_some_emails_in_a_savepoint(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 2', 'content') savepoint = self.email_queue.savepoint() self.email_queue.enqueue_email('me', 'him', 'mail 3', 'content') self.email_queue.enqueue_email('me', 'him', 'mail 4', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 5', 'content') self.assertEqual(2, len(self.email_queue._queues)) aggregated = sorter( [('me', {'him': [('mail 2', 'content'), ('mail 5', 'content')]}), ('him', {'me': [('mail 1', 'content'), ('mail 3', 'content'), ('mail 4', 'content')]})]) self.assertEqual(aggregated, sorter(self.email_queue)) savepoint.rollback() aggregated = sorter( [('me', {'him': [('mail 2', 'content')]}), ('him', {'me': [('mail 1', 'content')]})]) self.assertEqual(aggregated, sorter(self.email_queue)) def test_empty_queue(self): self.email_queue.savepoint().rollback() self.assertEqual([self.email_queue._current_queue], self.email_queue._queues) def test_empty_savepoint(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.savepoint().rollback() aggregated = [('him', {'me': [('mail 1', 'content')]})] self.assertEqual(aggregated, list(self.email_queue)) self.assertEqual(2, len(self.email_queue._queues)) self.assertEqual({}, self.email_queue._current_queue) self.assertEqual(self.email_queue._current_queue, self.email_queue._queues[-1]) def test_savepoint_from_empty(self): savepoint = self.email_queue.savepoint() self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') savepoint.rollback() self.assertEqual([], list(self.email_queue)) self.assertEqual([self.email_queue._current_queue], self.email_queue._queues) self.assertEqual({}, self.email_queue._current_queue) def test_activation(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.deactivate() self.email_queue.enqueue_email('me', 'him', 'mail 2', 'content') self.email_queue.activate() self.email_queue.enqueue_email('him', 'me', 'mail 3', 'content') aggregated = [('him', {'me': [('mail 1', 'content')]}), ('me', {'him': [('mail 3', 'content')]})] self.assertEqual(aggregated, sorter(self.email_queue))
class EmailQueueTransactionTestCase(unittest.TestCase): layer = FunctionalLayer def setUp(self): self.email_queue = EmailQueueTransaction(transaction.manager) def test_add_some_emails(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.enqueue_email('me', 'him', 'mail 2', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 3', 'content') aggregated = sorter([('me', { 'him': [('mail 3', 'content')] }), ('him', { 'me': [('mail 1', 'content'), ('mail 2', 'content')] })]) self.assertEqual(aggregated, sorter(self.email_queue)) def test_add_some_emails_in_a_savepoint(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 2', 'content') savepoint = self.email_queue.savepoint() self.email_queue.enqueue_email('me', 'him', 'mail 3', 'content') self.email_queue.enqueue_email('me', 'him', 'mail 4', 'content') self.email_queue.enqueue_email('him', 'me', 'mail 5', 'content') self.assertEqual(2, len(self.email_queue._queues)) aggregated = sorter([('me', { 'him': [('mail 2', 'content'), ('mail 5', 'content')] }), ('him', { 'me': [('mail 1', 'content'), ('mail 3', 'content'), ('mail 4', 'content')] })]) self.assertEqual(aggregated, sorter(self.email_queue)) savepoint.rollback() aggregated = sorter([('me', { 'him': [('mail 2', 'content')] }), ('him', { 'me': [('mail 1', 'content')] })]) self.assertEqual(aggregated, sorter(self.email_queue)) def test_empty_queue(self): self.email_queue.savepoint().rollback() self.assertEqual([self.email_queue._current_queue], self.email_queue._queues) def test_empty_savepoint(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.savepoint().rollback() aggregated = [('him', {'me': [('mail 1', 'content')]})] self.assertEqual(aggregated, list(self.email_queue)) self.assertEqual(2, len(self.email_queue._queues)) self.assertEqual({}, self.email_queue._current_queue) self.assertEqual(self.email_queue._current_queue, self.email_queue._queues[-1]) def test_savepoint_from_empty(self): savepoint = self.email_queue.savepoint() self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') savepoint.rollback() self.assertEqual([], list(self.email_queue)) self.assertEqual([self.email_queue._current_queue], self.email_queue._queues) self.assertEqual({}, self.email_queue._current_queue) def test_activation(self): self.email_queue.enqueue_email('me', 'him', 'mail 1', 'content') self.email_queue.deactivate() self.email_queue.enqueue_email('me', 'him', 'mail 2', 'content') self.email_queue.activate() self.email_queue.enqueue_email('him', 'me', 'mail 3', 'content') aggregated = [('him', { 'me': [('mail 1', 'content')] }), ('me', { 'him': [('mail 3', 'content')] })] self.assertEqual(aggregated, sorter(self.email_queue))