예제 #1
0
파일: cli.py 프로젝트: lukaszb/vcs
    def get_changesets(self, repo, **options):
        if options.get('start_date'):
            options['start_date'] = parse_datetime(options['start_date'])
        if options.get('end_date'):
            options['end_date'] = parse_datetime(options['end_date'])
        changesets = repo.get_changesets(
            start=options.get('start'),
            end=options.get('end', options.get('main')),
            start_date=options.get('start_date'),
            end_date=options.get('end_date'),
            branch_name=options.get('all') and None or
                options.get('branch') or repo.workdir.get_branch(),
            reverse=not options.get('reversed', False),
        )
        try:
            limit = int(options.get('limit'))
        except (ValueError, TypeError):
            limit = None

        count = 0
        for changeset in changesets:
            if self.show_changeset(changeset, **options):
                yield changeset
                count += 1
                if count == limit:
                    break
예제 #2
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_mixed(self):
     timestamp = datetime.datetime.today() - datetime.timedelta(days=2 * 7 + 3)
     args = timestamp.timetuple()[:3] + (0, 0, 0, 0)
     expected = datetime.datetime(*args)
     self.assertEqual(parse_datetime('2w3d'), expected)
     self.assertEqual(parse_datetime('2w 3d'), expected)
     self.assertEqual(parse_datetime('2w 3 days'), expected)
     self.assertEqual(parse_datetime('2 weeks 3 days'), expected)
예제 #3
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_weeks(self):
     timestamp = datetime.datetime.today() - datetime.timedelta(days=3 * 7)
     args = timestamp.timetuple()[:3] + (0, 0, 0, 0)
     expected = datetime.datetime(*args)
     self.assertEqual(parse_datetime('3w'), expected)
     self.assertEqual(parse_datetime('3 w'), expected)
     self.assertEqual(parse_datetime('3 week'), expected)
     self.assertEqual(parse_datetime('3 weeks'), expected)
예제 #4
0
 def test_weeks(self):
     timestamp = datetime.datetime.today() - datetime.timedelta(days=3 * 7)
     args = timestamp.timetuple()[:3] + (0, 0, 0, 0)
     expected = datetime.datetime(*args)
     self.assertEqual(parse_datetime('3w'), expected)
     self.assertEqual(parse_datetime('3 w'), expected)
     self.assertEqual(parse_datetime('3 week'), expected)
     self.assertEqual(parse_datetime('3 weeks'), expected)
예제 #5
0
 def test_mixed(self):
     timestamp = datetime.datetime.today() - datetime.timedelta(days=2 * 7 +
                                                                3)
     args = timestamp.timetuple()[:3] + (0, 0, 0, 0)
     expected = datetime.datetime(*args)
     self.assertEqual(parse_datetime('2w3d'), expected)
     self.assertEqual(parse_datetime('2w 3d'), expected)
     self.assertEqual(parse_datetime('2w 3 days'), expected)
     self.assertEqual(parse_datetime('2 weeks 3 days'), expected)
예제 #6
0
파일: cli.py 프로젝트: vchalapureddi/vcs
    def get_changesets(self, repo, **options):
        """
        Returns generator of changesets from given ``repo`` for given
        ``options``.

        :param repo: repository instance. Same as ``self.repo``.

        **Available options**

        * ``start_date``: only changesets not older than this parameter would be
          generated
        * ``end_date``: only changesets not younger than this parameter would be
          generated
        * ``start``: changeset's ID from which changesets would be generated
        * ``end``: changeset's ID to which changesets would be generated
        * ``branch``: branch for which changesets would be generated. If ``all``
          flag is specified, this option would be ignored. By default, branch
          would by tried to retrieved from working directory.
        * ``all``: return changesets from all branches
        * ``reversed``: by default changesets are returned in date order. If
          this flag is set to ``True``, reverse order would be applied.
        * ``limit``: if specified, show no more changesets than this value.
          Default is ``None``.
        """
        branch_name = None
        if not options.get('all', None):
            branch_name = options.get('branch') or repo.workdir.get_branch()
        if options.get('start_date'):
            options['start_date'] = parse_datetime(options['start_date'])
        if options.get('end_date'):
            options['end_date'] = parse_datetime(options['end_date'])
        changesets = repo.get_changesets(
            start=options.get('start'),
            end=options.get('end', options.get('main')),
            start_date=options.get('start_date'),
            end_date=options.get('end_date'),
            branch_name=branch_name,
            reverse=not options.get('reversed', False),
        )
        try:
            limit = int(options.get('limit'))
        except (ValueError, TypeError):
            limit = None

        count = 0
        for changeset in changesets:
            if self.show_changeset(changeset, **options):
                yield changeset
                count += 1
                if count == limit:
                    break
예제 #7
0
파일: cli.py 프로젝트: jonashaag/vcs
    def get_changesets(self, repo, **options):
        """
        Returns generator of changesets from given ``repo`` for given
        ``options``.

        :param repo: repository instance. Same as ``self.repo``.

        **Available options**

        * ``start_date``: only changesets not older than this parameter would be
          generated
        * ``end_date``: only changesets not younger than this parameter would be
          generated
        * ``start``: changeset's ID from which changesets would be generated
        * ``end``: changeset's ID to which changesets would be generated
        * ``branch``: branch for which changesets would be generated. If ``all``
          flag is specified, this option would be ignored. By default, branch
          would by tried to retrieved from working directory.
        * ``all``: return changesets from all branches
        * ``reversed``: by default changesets are returned in date order. If
          this flag is set to ``True``, reverse order would be applied.
        * ``limit``: if specified, show no more changesets than this value.
          Default is ``None``.
        """
        branch_name = None
        if not options['all']:
            branch_name = options.get('branch') or repo.workdir.get_branch()
        if options.get('start_date'):
            options['start_date'] = parse_datetime(options['start_date'])
        if options.get('end_date'):
            options['end_date'] = parse_datetime(options['end_date'])
        changesets = repo.get_changesets(
            start=options.get('start'),
            end=options.get('end', options.get('main')),
            start_date=options.get('start_date'),
            end_date=options.get('end_date'),
            branch_name=branch_name,
            reverse=not options.get('reversed', False),
        )
        try:
            limit = int(options.get('limit'))
        except (ValueError, TypeError):
            limit = None

        count = 0
        for changeset in changesets:
            if self.show_changeset(changeset, **options):
                yield changeset
                count += 1
                if count == limit:
                    break
예제 #8
0
 def test_tomorrow(self):
     tomorrow = datetime.date.today() + datetime.timedelta(days=1)
     args = tomorrow.timetuple()[:3] + (23, 59, 59)
     self.assertEqual(parse_datetime('tomorrow'), datetime.datetime(*args))
예제 #9
0
 def test_yesterday(self):
     yesterday = datetime.date.today() - datetime.timedelta(days=1)
     self.assertEqual(parse_datetime('yesterday'),
                      datetime.datetime(*yesterday.timetuple()[:3]))
예제 #10
0
 def test_today(self):
     today = datetime.date.today()
     self.assertEqual(parse_datetime('today'),
                      datetime.datetime(*today.timetuple()[:3]))
예제 #11
0
 def test_now(self):
     self.assertTrue(
         parse_datetime('now') -
         datetime.datetime.now() < datetime.timedelta(seconds=1))
예제 #12
0
 def test_another_format(self):
     self.assertEqual(parse_datetime('04/07/10 21:29:41'),
                      datetime.datetime(2010, 4, 7, 21, 29, 41))
예제 #13
0
 def test_date_only(self):
     self.assertEqual(parse_datetime('2010-04-07'),
                      datetime.datetime(2010, 4, 7))
예제 #14
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_today(self):
     today = datetime.date.today()
     self.assertEqual(parse_datetime('today'),
         datetime.datetime(*today.timetuple()[:3]))
예제 #15
0
 def test_datetime_text(self):
     self.assertEqual(parse_datetime('2010-04-07 21:29:41'),
                      datetime.datetime(2010, 4, 7, 21, 29, 41))
예제 #16
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_no_seconds(self):
     self.assertEqual(parse_datetime('2010-04-07 21:29'),
         datetime.datetime(2010, 4, 7, 21, 29))
예제 #17
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_another_format(self):
     self.assertEqual(parse_datetime('04/07/10 21:29:41'),
         datetime.datetime(2010, 4, 7, 21, 29, 41))
예제 #18
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_tomorrow(self):
     tomorrow = datetime.date.today() + datetime.timedelta(days=1)
     args = tomorrow.timetuple()[:3] + (23, 59, 59)
     self.assertEqual(parse_datetime('tomorrow'), datetime.datetime(*args))
예제 #19
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_yesterday(self):
     yesterday = datetime.date.today() - datetime.timedelta(days=1)
     self.assertEqual(parse_datetime('yesterday'),
         datetime.datetime(*yesterday.timetuple()[:3]))
예제 #20
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_date_only(self):
     self.assertEqual(parse_datetime('2010-04-07'),
         datetime.datetime(2010, 4, 7))
예제 #21
0
 def test_no_seconds(self):
     self.assertEqual(parse_datetime('2010-04-07 21:29'),
                      datetime.datetime(2010, 4, 7, 21, 29))
예제 #22
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_datetime_text(self):
     self.assertEqual(parse_datetime('2010-04-07 21:29:41'),
         datetime.datetime(2010, 4, 7, 21, 29, 41))
예제 #23
0
파일: test_utils.py 프로젝트: methane/vcs
 def test_now(self):
     self.assertTrue(parse_datetime('now') - datetime.datetime.now() <
         datetime.timedelta(seconds=1))