def runTest(self): man = Manager(self.project, self.release, self.component, self.language, self.log) """ perform checkout """ # perform build rev = man.build() # check if the file was added pofiles = POFile.objects.filter(component=self.component, release=self.release, language=self.language) # the repo should contain one file only self.assertEquals(pofiles.count(),1) """ perform commit """ # modify the file f = open(pofiles[0].file,"a") f.write("test") f.close() # perform commit revc = man.commit(None, None, "test") self.assertEquals(revc, (rev + 1)) # POT creation potman = POTUpdater(self.project, self.release, self.component,self.log) potman.build() potfiles = POTFile.objects.filter(component=self.component) self.assertEquals(potfiles.count(),1) self.assertEquals(potfiles[0].total,5) # 5 messages self.assertEquals(potfiles[0].updated,'2009-09-21 09:47+0200')
def handle(self, *args, **options): self.stdout.write('Started.\n') logger.info("Start") t_start = time.time() potonly = options['potonly'] BOT_USERNAME = getattr(settings, 'BOT_USERNAME', 'bot') BOT_USER = User.objects.get(username=BOT_USERNAME) projects = Project.objects.filter(enabled=True, read_only=False) b = None failedProjects = [] try: for project in projects: teams = project.teams.all() for release in project.releases.filter(enabled=True, read_only=False): for component in project.components.all(): try: b = BuildCache.objects.get(component=component, release=release) if b.is_locked: logger.info("%s - %s is locked" % (release, component)) break except: b = BuildCache.objects.create(component=component, release=release) b.lock() try: if not potonly: for team in teams: if project.slug in failedProjects: self.stdout.write("Project %s skipped because previous fails\n" % project.slug) logger.info("Project %s skipped because previous fails" % project.slug) break logger.info("Refresh project %s, release %s, component %s, team %s" % (project.name, release.name, component.name, team.language.name)) man = Manager(project, release, component, team.language, user=BOT_USER) try: logger.debug('Create lock') with LockRepo(project.slug, release.slug, component.slug, team.language.code) as lock: logger.debug('Refresh') man.revert() man.refresh() logger.debug('Process Stats') man.update_stats(False) except Exception, e: failedProjects.append(project.slug) logger.error(e) traceback.print_exc(file=sys.stdout) finally: del man if component.potlocation: logger.info("Processing POT") repo = POTUpdater(project, release, component) try: repo.update_stats(True) except Exception, e: logger.error(e) traceback.print_exc(file=sys.stdout) finally: del repo
component.slug, team.language.code) as lock: if dorefresh: man.revert() b.setrev(man.refresh()) man.update_stats(False) except Exception, e: failedProjects.append(project.slug) logger.error(e) traceback.print_exc(file=sys.stdout) finally: del man if component.potlocation: logger.info("Processing POT") repo = POTUpdater(project, release, component) try: repo.update_stats(dorefresh) except Exception, e: logger.error(e) traceback.print_exc(file=sys.stdout) finally: del repo filelst = POFile.objects.filter(component=component, release=release) for pofl in filelst: potnotification.check_notification(pofl, None, True) else: logger.debug("POT skipped") b.unlock()