def test_read_clears_if_no_file(self): import carbon.rewrite RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'exists', Mock(return_value=False)): with patch.object(RewriteRuleManager, 'clear') as clear_mock: RewriteRuleManager.read_rules() clear_mock.assert_called_once_with()
def test_read_records_mtime(self): import carbon.rewrite RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'open', mock_open(), create=True): with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=1234)): RewriteRuleManager.read_rules() self.assertEqual(1234, RewriteRuleManager.rules_last_read)
def test_read_opens_file_if_mtime_newer(self): import carbon.rewrite RewriteRuleManager.rules_last_read = 1234 RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'open', mock_open(), create=True) as open_mock: with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=5678)): RewriteRuleManager.read_rules() self.assertTrue(open_mock.called)
def test_comments_ignored(self): import carbon.rewrite open_mock = Mock(return_value=iter(self.commented_config.splitlines())) RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'open', open_mock, create=True): with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=1234)): RewriteRuleManager.read_rules() self.assertEqual(1, len(RewriteRuleManager.rules('pre')))
def test_section_parsed_into_ruleset(self): import carbon.rewrite open_mock = Mock(return_value=iter(self.sample_config.splitlines())) RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'open', open_mock, create=True): with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=1234)): RewriteRuleManager.read_rules() self.assertTrue('pre' in RewriteRuleManager.rulesets)
def test_read_doesnt_open_file_if_mtime_unchanged(self): import carbon.rewrite mtime = 1234 RewriteRuleManager.rules_last_read = mtime RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'open', mock_open(), create=True) as open_mock: with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=1234)): RewriteRuleManager.read_rules() self.assertFalse(open_mock.called)
def test_rules_unchanged_if_mtime_unchanged(self): import carbon.rewrite mtime = 1234 rulesets = {'pre': [Mock(RewriteRule)]} RewriteRuleManager.rules_last_read = mtime RewriteRuleManager.rulesets.update(rulesets) RewriteRuleManager.rules_file = 'foo.conf' with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)): with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=mtime)): RewriteRuleManager.read_rules() self.assertEqual(rulesets, RewriteRuleManager.rulesets)