Пример #1
0
 def test_valid(self):
     channel1 = ChannelConfig(name='ch1',
                              mailbox_path='/var/mail/ch1',
                              query='label:ch1')
     group1 = GroupConfig(name='gr1', channels=['ch1'])
     config = Config(channels={'ch1': channel1}, groups={'gr1': group1})
     self.validator.validate(config)
Пример #2
0
 def test_invalid_channels_in_group(self):
     channel1 = ChannelConfig(name='ch1',
                              mailbox_path='/var/mail/ch1',
                              query='label:ch1')
     group1 = GroupConfig(name='gr1', channels=['other'])
     config = Config(channels={'ch1': channel1}, groups={'gr1': group1})
     with self.assertRaisesRegex(
             ConfigurationError,
             "Channel 'other' in group 'gr1' is not defined"):
         self.validator.validate(config)
Пример #3
0
    def test_channel_factory(self, mock_mailbox):
        ch1 = ChannelConfig(name='ch1', mailbox_path='/mail/ch1', box_type='maildir', query='label:STARRED')
        ch2 = ChannelConfig(name='ch2', mailbox_path='/mail/ch2', box_type='maildir', query='label:INBOX')
        ch3 = ChannelConfig(name='ch3', mailbox_path='/mail/ch3', box_type='mbox', query='other query')
        config = Config(channels=[ch1, ch2, ch3])

        channels_to_sync = ['ch1', 'ch3']

        channels = channel_factory(config, channels_to_sync)

        self.assertEqual(len(channels), 2)
        self._verify_channel(channels[0], 'ch1', 'label:STARRED')
        self._verify_channel(channels[1], 'ch3', 'other query')

        mock_mailbox.assert_has_calls([
            call('maildir', '/mail/ch1'),
            call('mbox', '/mail/ch3')
        ])
Пример #4
0
 def test_no_channels(self):
     config = Config()
     with self.assertRaisesRegex(ConfigurationError,
                                 'No channels found in config'):
         self.validator.validate(config)
Пример #5
0
 def test_invalid_groups(self):
     with self.assertRaises(ValueError):
         config = Config(groups='invalid')
Пример #6
0
 def setUp(self):
     self.config = Config(channels={'ch1': CH1, 'ch2': CH2, 'ch3': CH3}, groups={'gr1': GR1})
Пример #7
0
 def test_groups_from_tuple(self):
     config = Config(groups=(GR1, GR2))
     self.assertEqual(config.groups, {'gr1': GR1, 'gr2': GR2})
Пример #8
0
 def test_groups_from_list(self):
     config = Config(groups=[GR1, GR2])
     self.assertEqual(config.groups, {'gr1': GR1, 'gr2': GR2})
Пример #9
0
 def test_groups_from_dict(self):
     config = Config(groups={'gr1': GR1, 'gr2': GR2})
     self.assertEqual(config.groups, {'gr1': GR1, 'gr2': GR2})
Пример #10
0
 def test_invalid_channels(self):
     with self.assertRaises(ValueError):
         config = Config(channels='invalid')
Пример #11
0
 def test_channels_from_list(self):
     config = Config(channels=[CH1, CH2])
     self.assertEqual(config.channels, {'ch1': CH1, 'ch2': CH2})
Пример #12
0
 def test_channels_from_tuple(self):
     config = Config(channels=(CH1, CH2))
     self.assertEqual(config.channels, {'ch1': CH1, 'ch2': CH2})
Пример #13
0
 def test_channels_from_dict(self):
     config = Config(channels={'ch1': CH1, 'ch2': CH2})
     self.assertEqual(config.channels, {'ch1': CH1, 'ch2': CH2})