~registry/ubuntu-friendly/trunk

« back to all changes in this revision

Viewing changes to apps/results/api.py

  • Committer: Mike Heald
  • Date: 2011-11-17 17:36:26 UTC
  • Revision ID: mike.heald@canonical.com-20111117173626-vtnedx3vjqmt3fjn
Fixed importer bug for unit with no tests, added flatpages

Show diffs side-by-side

added added

removed removed

Lines of Context:
149
149
 
150
150
    def _import_unit(self, system):
151
151
        r = self.record.get_record()
 
152
        if not r['test_results']:
 
153
            return None
152
154
        unit, created = SystemUnit.objects.get_or_create(
153
155
                        config=system, identifier=r['unit_identifier'])
154
156
        unit.test_run_source = r.get('test_run_source', '')
236
238
                        unit.delete()
237
239
                    # check if the system has no units, if so
238
240
                    # remove it because there is no data for it
239
 
                    if SystemUnit.objects.filter(config=system) \
240
 
                        .count() == 0:
241
 
                        system.delete()
242
241
                    return None
243
242
 
244
243
            if not ignore_test:
310
309
        if system:
311
310
            unit = self._import_unit(system)
312
311
            if unit is None:
 
312
                if SystemUnit.objects.filter(config=system) \
 
313
                    .count() == 0:
 
314
                    system.delete()
313
315
                return None
314
316
            self._save_star_rating(unit, system)
315
317
        return system
529
531
        self.api = Launchpad.login_anonymously(
530
532
                    'Launchpad Results', settings.LP_ROOT)
531
533
 
532
 
    def _get_test_runs(self, distro_series):
 
534
    def _get_test_runs(self, distro_series, test_run_sequence=None):
533
535
        import datetime
534
536
        r_distro = self.api.distributions['ubuntu']
535
537
        distro_series = r_distro.getSeries(name=distro_series.codename)
536
538
        self.logger.write('%s\n' % (datetime.datetime.now() - datetime.timedelta(hours=self.age)))
537
 
        return distro_series.searchTestRuns(
538
 
            created_after=datetime.datetime.now() - \
539
 
                datetime.timedelta(hours=self.age))
 
539
        if test_run_sequence is not None:
 
540
            return distro_series.searchTestRuns(sequence=int(test_run_sequence))
 
541
        else:
 
542
            return distro_series.searchTestRuns(
 
543
                created_after=datetime.datetime.now() - \
 
544
                    datetime.timedelta(hours=self.age))
540
545
 
541
546
    def _flush_log(self):
542
547
        pass
543
548
 
544
 
    def _do_import_results(self, complete_refresh=False):
 
549
    def _do_import_results(self, complete_refresh=False, test_run_sequence=None):
545
550
        lock = get_lock(self.lock)
546
551
        if lock:
547
552
            try:
548
553
                SystemUnit.objects.all().update(refreshed=False)
549
 
                runs = self._get_test_runs(self.release)
 
554
                runs = self._get_test_runs(self.release, test_run_sequence)
550
555
                if runs is not None and list(runs):
551
556
                    for run in runs:
552
557
                        adapter = ResultsRecordTranslator(run, self.release, self.logger)
567
572
                    SystemConfig.objects.filter(systemunit__isnull=True).delete()
568
573
                lock.delete()
569
574
 
570
 
    def import_results(self, complete_refresh=False):
571
 
        for r in self._do_import_results(complete_refresh):
 
575
    def import_results(self, complete_refresh=False, test_run_sequence=None):
 
576
        for r in self._do_import_results(complete_refresh, test_run_sequence):
572
577
            pass
573
578
 
574
579
 
593
598
    def _flush_log(self):
594
599
        return self.logger.flush()
595
600
 
596
 
    def import_results(self, complete_refresh=False):
 
601
    def import_results(self, complete_refresh=False, test_run_sequence=None):
597
602
        return self._do_import_results(complete_refresh)