コード例 #1
0
    def test_sync_event_file_changed_name(self):
        # Build an event and establish that it has already been observed and
        # written
        event = self.fake_event()
        mock_created = datetime.date.today() - datetime.timedelta(days=7)
        mock_old_filename = FileWriter.create_filename(mock_created,
                                                       event['title'])
        mock_file_info = {
            'title': event['title'],
            'filename': mock_old_filename
        }
        prep_writer = FileWriter(self.test_posts_dir)
        prep_writer.write(MeetupEvent(event), mock_old_filename)

        # Modify event name
        event['title'] = 'A new name'
        expected_transformed_event = MeetupEvent(event)
        mock_new_filename = FileWriter.create_filename(mock_created,
                                                       event['title'])

        # Verify that
        # 1. writer.delete is called to delete to old file
        # 2. writer.write is going to write content that includes the updated
        #    name
        # 3. writer.write is going to write to a new file using the new name
        with mock.patch.object(self.subject.writer, 'write') as mock_write,\
            mock.patch.object(self.subject.writer, 'delete') as mock_delete,\
            mock.patch.object(self.subject.db, 'find_event') as\
                mock_find_event:
            mock_find_event.return_value = mock_file_info
            self.subject.sync_event_file(event)
            mock_delete.assert_called_with(mock_old_filename)
            self.assertEqual(str(mock_write.call_args[0][0]),
                             str(expected_transformed_event))
            self.assertEqual(mock_write.call_args[0][1], mock_new_filename)
コード例 #2
0
    def test_sync_event_file_excerpt_update(self):
        # Build an event and establish that it has already been observed and
        # written
        event = self.fake_event()
        mock_created = datetime.date.today() - datetime.timedelta(days=7)
        mock_filename = FileWriter.create_filename(mock_created,
                                                   event['title'])
        mock_file_info = {'title': event['title'], 'filename': mock_filename}
        prep_writer = FileWriter(self.test_posts_dir)
        prep_writer.write(MeetupEvent(event), mock_filename)

        # Modify event content that will become excerpt
        event['excerpt'] = "<p>This is new</p>" + event['excerpt']
        expected_transformed_event = MeetupEvent(event)

        # Verify that
        # 1. writer.write is going to write content that includes the updated
        #    excerpt
        # 2. writer.write is going to write to the already existing file
        with mock.patch.object(self.subject.writer, 'write') as mock_write,\
            mock.patch.object(self.subject.db, 'find_event') as\
                mock_find_event:
            mock_find_event.return_value = mock_file_info
            self.subject.sync_event_file(event)
            self.assertEqual(str(mock_write.call_args[0][0]),
                             str(expected_transformed_event))
            self.assertEqual(mock_write.call_args[0][1], mock_filename)
コード例 #3
0
ファイル: app.py プロジェクト: benjifs/site_bot
 def __init__(self, CONSTANTS):
     for name in CONSTANTS:
         setattr(self, name, CONSTANTS[name])
     self.meetup = MeetupClient(self.MEETUP_GROUP_NAME)
     self.git = GitClient(self.REPO_PATH, self.REPO_AUTHOR_NAME,
                          self.REPO_AUTHOR_EMAIL)
     self.writer = FileWriter(self.EVENT_POSTS_DIR)
     self.db = FileDB(self.EVENT_POSTS_DIR)
コード例 #4
0
 def setUp(self):
     super(FileWriterTest, self).setUp()
     self.test_dir = tempfile.mkdtemp()
     self.subject = FileWriter(self.test_dir)