예제 #1
0
  def testFootersBasic(self):
    self.assertEqual(
        git_footers.split_footers('Not-A: footer'),
        (['Not-A: footer'], [], []))
    self.assertEqual(
        git_footers.split_footers('Header\n\nActual: footer'),
        (['Header', ''], ['Actual: footer'], [('Actual', 'footer')]))
    self.assertEqual(
        git_footers.split_footers('\nActual: footer'),
        ([''], ['Actual: footer'], [('Actual', 'footer')]))
    self.assertEqual(
        git_footers.split_footers('H\n\nBug:\nAlso: footer'),
        (['H', ''], ['Bug:', 'Also: footer'],
         [('Bug', ''), ('Also', 'footer')]))
    self.assertEqual(
        git_footers.split_footers('H\n\nBug:      '),
        (['H', ''], ['Bug:      '], [('Bug', '')]))

    self.assertEqual(
        git_footers.parse_footers(self._message), {})
    self.assertEqual(
        git_footers.parse_footers(self._message + self._position_footer),
        { 'Cr-Commit-Position': [ self._position ] })
    self.assertEqual(
        git_footers.parse_footers(self._message + self._position_footer
                                                + self._position_footer),
        { 'Cr-Commit-Position': [ self._position, self._position ] })
    self.assertEqual(
        git_footers.parse_footers(self._message +
                                  'Bug:\n' +
                                  self._position_footer),
        { 'Bug': [''],
          'Cr-Commit-Position': [ self._position ] })
예제 #2
0
    def testFootersBasic(self):
        self.assertEqual(git_footers.split_footers('Not-A: footer'),
                         (['Not-A: footer'], [], []))
        self.assertEqual(
            git_footers.split_footers('Header\n\nActual: footer'),
            (['Header', ''], ['Actual: footer'], [('Actual', 'footer')]))
        self.assertEqual(git_footers.split_footers('\nActual: footer'),
                         ([''], ['Actual: footer'], [('Actual', 'footer')]))
        self.assertEqual(
            git_footers.split_footers('H\n\nBug:\nAlso: footer'),
            (['H', ''], ['Bug:', 'Also: footer'], [('Bug', ''),
                                                   ('Also', 'footer')]))
        self.assertEqual(git_footers.split_footers('H\n\nBug:      '),
                         (['H', ''], ['Bug:      '], [('Bug', '')]))

        self.assertEqual(git_footers.parse_footers(self._message), {})
        self.assertEqual(
            git_footers.parse_footers(self._message + self._position_footer),
            {'Cr-Commit-Position': [self._position]})
        self.assertEqual(
            git_footers.parse_footers(self._message + self._position_footer +
                                      self._position_footer),
            {'Cr-Commit-Position': [self._position, self._position]})
        self.assertEqual(
            git_footers.parse_footers(self._message + 'Bug:\n' +
                                      self._position_footer),
            {
                'Bug': [''],
                'Cr-Commit-Position': [self._position]
            })
 def testSkippingBadFooterLines(self):
   message = ('Title.\n'
              '\n'
              'Last: paragraph starts\n'
              'It-may: contain\n'
              'bad lines, which should be skipped\n'
              'For: example\n'
              '(cherry picked from)\n'
              'And-only-valid: footers taken')
   self.assertEqual(git_footers.split_footers(message),
                    (['Title.',
                      ''],
                     ['Last: paragraph starts',
                      'It-may: contain',
                      'bad lines, which should be skipped',
                      'For: example',
                      '(cherry picked from)',
                      'And-only-valid: footers taken'],
                     [('Last', 'paragraph starts'),
                      ('It-may', 'contain'),
                      ('For', 'example'),
                      ('And-only-valid', 'footers taken')]))
   self.assertEqual(git_footers.parse_footers(message),
                    {'Last': ['paragraph starts'],
                     'It-May': ['contain'],
                     'For': ['example'],
                     'And-Only-Valid': ['footers taken']})
예제 #4
0
 def testSkippingBadFooterLines(self):
   message = ('Title.\n'
              '\n'
              'Last: paragraph starts\n'
              'It-may: contain\n'
              'bad lines, which should be skipped\n'
              'For: example\n'
              '(cherry picked from)\n'
              'And-only-valid: footers taken')
   self.assertEqual(git_footers.split_footers(message),
                    (['Title.',
                      ''],
                     ['Last: paragraph starts',
                      'It-may: contain',
                      'bad lines, which should be skipped',
                      'For: example',
                      '(cherry picked from)',
                      'And-only-valid: footers taken'],
                     [('Last', 'paragraph starts'),
                      ('It-may', 'contain'),
                      ('For', 'example'),
                      ('And-only-valid', 'footers taken')]))
   self.assertEqual(git_footers.parse_footers(message),
                    {'Last': ['paragraph starts'],
                     'It-May': ['contain'],
                     'For': ['example'],
                     'And-Only-Valid': ['footers taken']})
예제 #5
0
    def testFootersBasic(self):
        self.assertEqual(git_footers.split_footers('Not-A: footer'),
                         (['Not-A: footer'], [], []))
        self.assertEqual(
            git_footers.split_footers('Header\n\nActual: footer'),
            (['Header', ''], ['Actual: footer'], [('Actual', 'footer')]))
        self.assertEqual(git_footers.split_footers('\nActual: footer'),
                         ([''], ['Actual: footer'], [('Actual', 'footer')]))

        self.assertEqual(git_footers.parse_footers(self._message), {})
        self.assertEqual(
            git_footers.parse_footers(self._message + self._position_footer),
            {'Cr-Commit-Position': [self._position]})
        self.assertEqual(
            git_footers.parse_footers(self._message + self._git_svn_id_footer),
            {'Git-Svn-Id': [self._git_svn_id]})
        self.assertEqual(
            git_footers.parse_footers(self._message + self._position_footer +
                                      self._position_footer),
            {'Cr-Commit-Position': [self._position, self._position]})
예제 #6
0
def AddUploadedByGitClSplitToDescription(description):
    """Adds a 'This CL was uploaded by git cl split.' line to |description|.

  The line is added before footers, or at the end of |description| if it has no
  footers.
  """
    split_footers = git_footers.split_footers(description)
    lines = split_footers[0]
    if not lines[-1] or lines[-1].isspace():
        lines = lines + ['']
    lines = lines + ['This CL was uploaded by git cl split.']
    if split_footers[1]:
        lines += [''] + split_footers[1]
    return '\n'.join(lines)
예제 #7
0
def AddUploadedByGitClSplitToDescription(description):
  """Adds a 'This CL was uploaded by git cl split.' line to |description|.

  The line is added before footers, or at the end of |description| if it has no
  footers.
  """
  split_footers = git_footers.split_footers(description)
  lines = split_footers[0]
  if not lines[-1] or lines[-1].isspace():
    lines = lines + ['']
  lines = lines + ['This CL was uploaded by git cl split.']
  if split_footers[1]:
    lines += [''] + split_footers[1]
  return '\n'.join(lines)
예제 #8
0
  def testFootersBasic(self):
    self.assertEqual(
        git_footers.split_footers('Not-A: footer'),
        (['Not-A: footer'], [], []))
    self.assertEqual(
        git_footers.split_footers('Header\n\nActual: footer'),
        (['Header', ''], ['Actual: footer'], [('Actual', 'footer')]))
    self.assertEqual(
        git_footers.split_footers('\nActual: footer'),
        ([''], ['Actual: footer'], [('Actual', 'footer')]))

    self.assertEqual(
        git_footers.parse_footers(self._message), {})
    self.assertEqual(
        git_footers.parse_footers(self._message + self._position_footer),
        { 'Cr-Commit-Position': [ self._position ] })
    self.assertEqual(
        git_footers.parse_footers(self._message + self._git_svn_id_footer),
        { 'Git-Svn-Id': [ self._git_svn_id ] })
    self.assertEqual(
        git_footers.parse_footers(self._message + self._position_footer
                                                + self._position_footer),
        { 'Cr-Commit-Position': [ self._position, self._position ] })
예제 #9
0
 def testAvoidingURLs(self):
     message = ('Someone accidentally put a URL in the footers.\n'
                '\n'
                'Followed: by\n'
                'http://domain.tld\n'
                'Some: footers')
     self.assertEqual(
         git_footers.split_footers(message),
         (['Someone accidentally put a URL in the footers.', ''], [
             'Followed: by', 'http://domain.tld', 'Some: footers'
         ], [('Followed', 'by'), ('Some', 'footers')]))
     self.assertEqual(git_footers.parse_footers(message), {
         'Followed': ['by'],
         'Some': ['footers']
     })
예제 #10
0
 def testSplittingLastParagraph(self):
     message = ('Title.\n'
                '\n'
                'The final paragraph has some normal text first.\n'
                'Followed: by\n'
                'nonsense trailers and\n'
                'Some: footers')
     self.assertEqual(git_footers.split_footers(message), ([
         'Title.', '', 'The final paragraph has some normal text first.', ''
     ], ['Followed: by', 'nonsense trailers and', 'Some: footers'
         ], [('Followed', 'by'), ('Some', 'footers')]))
     self.assertEqual(git_footers.parse_footers(message), {
         'Followed': ['by'],
         'Some': ['footers']
     })
예제 #11
0
 def testAvoidingURLs(self):
   message = ('Someone accidentally put a URL in the footers.\n'
              '\n'
              'Followed: by\n'
              'http://domain.tld\n'
              'Some: footers')
   self.assertEqual(git_footers.split_footers(message),
                    (['Someone accidentally put a URL in the footers.',
                      ''],
                     ['Followed: by',
                      'http://domain.tld',
                      'Some: footers'],
                     [('Followed', 'by'),
                      ('Some', 'footers')]))
   self.assertEqual(git_footers.parse_footers(message),
                    {'Followed': ['by'],
                     'Some': ['footers']})
예제 #12
0
 def testSplittingLastParagraph(self):
   message = ('Title.\n'
              '\n'
              'The final paragraph has some normal text first.\n'
              'Followed: by\n'
              'nonsense trailers and\n'
              'Some: footers')
   self.assertEqual(git_footers.split_footers(message),
                    (['Title.',
                      '',
                      'The final paragraph has some normal text first.',
                      ''],
                     ['Followed: by',
                      'nonsense trailers and',
                      'Some: footers'],
                     [('Followed', 'by'),
                      ('Some', 'footers')]))
   self.assertEqual(git_footers.parse_footers(message),
                    {'Followed': ['by'],
                     'Some': ['footers']})