コード例 #1
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def testShouldTheBuildsTimes(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed]

        atime = datetime.strptime("20091011000000", "%Y%m%d%H%M%S")
        values, min, max, max_time = builds.build_times()
        self.assertEquals(3, len(values))

        self.assertEquals (util.datetimeutils.cctimestamp_to_unix_timestamp("20091011173900"), min)
        self.assertEquals (util.datetimeutils.cctimestamp_to_unix_timestamp("20091017220324"), max)
        self.assertEquals (60, max_time)
コード例 #2
0
    def test_should_group_the_commitors_based_on_(self):
        builds = Builds()
        builds.builds = [self.failed,  self.did_not_fix, self.fixed_it, self.another_pass]
        grouped_commitors = builds.build_breakers()
        commitor = grouped_commitors.find('xkf')
        self.assertEquals(2, commitor.passed_count())
        self.assertEquals(1, commitor.failed_count())

        commitor = grouped_commitors.find('khu')
        self.assertEquals(0, commitor.passed_count())
        self.assertEquals(1, commitor.failed_count())
コード例 #3
0
ファイル: views.py プロジェクト: khu/ianalyse
def generate(request) :
    configs = Configs()
    if (configs.is_empty()) :
        return render_to_response('analyse/hint.html', Context({}), context_instance = RequestContext(request))

    config = configs.find(request.POST['id'])
    over_all_result = {}
    Builds.create_builds(config, None, config.builds())
    Build.analyse_all(config.id, over_all_result)
    Builds.create_csv(config.id)
    return redirect('index.html')
コード例 #4
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def testShouldGroupTheBuilds(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed]
        grouped_builds = builds.group_by_each_day()
        self.assertEquals(2, len(grouped_builds))

        atime = datetime.strptime("20091011000000", "%Y%m%d%H%M%S")
        btime = datetime.strptime("20091017000000", "%Y%m%d%H%M%S")

        self.assertEquals(2, len(grouped_builds[atime].builds))
        btime = datetime.strptime("20091017000000", "%Y%m%d%H%M%S")
        self.assertEquals(1, len(grouped_builds[btime].builds))
コード例 #5
0
ファイル: builds_tests.py プロジェクト: khu/ianalyse
    def testShouldCalculateTheBuildPerDay(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11, self.another_passed_at_oct_11, self.failed]

        values, labels, max_time = builds.per_build_time()

        self.assertEquals("#1C9E05", values[0]["colour"])
        self.assertEquals("#1C9E05", values[1]["colour"])
        self.assertEquals("#FF368D", values[2]["colour"])
        self.assertEquals(60, values[0]["top"])
        self.assertEquals(2, values[1]["top"])
        self.assertEquals(4, values[2]["top"])
        self.assertEquals("2009-10-11 17:39:22", labels[0])
        self.assertEquals("2009-10-11 17:39:00", labels[1])
        self.assertEquals("2009-10-17 22:03:24", labels[2])
        self.assertEquals(60, max_time)
コード例 #6
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def testShouldCalculateTheBuildPerDay(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed]

        values, labels, max_time = builds.per_build_time()
        
        self.assertEquals('#1C9E05', values[0]['colour']);
        self.assertEquals('#1C9E05', values[1]['colour']);
        self.assertEquals('#FF368D', values[2]['colour']);
        self.assertEquals(60, values[0]['top']);
        self.assertEquals(2,  values[1]['top']);
        self.assertEquals(4,  values[2]['top']);
        self.assertEquals('2009-10-11 17:39:22', labels[0])
        self.assertEquals('2009-10-11 17:39:00', labels[1])
        self.assertEquals('2009-10-17 22:03:24', labels[2])
        self.assertEquals(60, max_time);
コード例 #7
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testShouldFilterThe5Files(self):
       self.ccroot = self.root + '/analyse/tests/fixtures/cclive-release-jdk1.5'
       files = Builds.filter(self.ccroot, 5)
       self.assertEquals(5, len(files))
       self.assertEquals('log20080923021338.xml', files[0])
       self.assertEquals('log20080923232508.xml', files[1])
       self.assertEquals('log20080924001513.xml', files[2])
       self.assertEquals('log20080924052506.xml', files[3])
       self.assertEquals('log20080924062941.xml', files[4])
コード例 #8
0
ファイル: successful_rate_chart.py プロジェクト: khu/ianalyse
    def testGenerateTotalPassRate(self):
        builds = Builds.create_builds(TestUtils().connectfour_config(), None,SuccessfulRateChartTests.PATTERN);
        
        ndaysStat = TopNStatistics('connectfour4', builds)
        json_str = ndaysStat.successful_rate()
        json_obj = cjson.decode(json_str)


        self.assertEqual(2, len(json_obj['elements'][0]['values']));
コード例 #9
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
    def testShouldSelectValuesFromFiles(self) :      
          values = Builds.select_values_from(TestUtils().cclive_config(), None,2)
          self.assertEquals(2, len(values))

          self.assertEquals('cclive-release-jdk1.5', values[0][0])
          self.assertEquals('build.6', values[0][1])
          self.assertEquals('6 minutes 28 seconds', values[0][2])
          self.assertEquals(None, values[0][3])
          self.assertEquals('cclive-release-jdk1.5', values[1][0])
          self.assertEquals('build.6', values[1][1])
          self.assertEquals('6 minutes 45 seconds', values[1][2])
          self.assertEquals(None, values[1][3])
コード例 #10
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def test_should_calculate_pass_count(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed_at_oct_11]

        self.assertEquals(2, builds.pass_count())
コード例 #11
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def test_should_calculate_pass_rate_by_day(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed_at_oct_11]

        n_days_summary = builds.get_n_days_summary()
        self.assertEquals('67.0', str(n_days_summary.pass_rate_values()[0]['y']))
コード例 #12
0
    def test_should_passed_runs_by_day(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed_at_oct_11]
        n_days_summary = builds.get_n_days_summary();

        self.assertEquals(1, n_days_summary.failed_runs_values()[0].get('y'))
コード例 #13
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testToParseAllTheLogs(self):
     self.assertEqual(2, len(Builds.create_builds(TestUtils().connectfour_config(), BuildFactoryTest.PATTERN, 2)))
コード例 #14
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
 def testShouldOnlyKeep2digitAfterPoint(self):
     builds = Builds()
     builds.builds = [self.passed_at_oct_11,  self.failed]
     self.assertEquals('0.33', str(builds.avg_runs()));
コード例 #15
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
 def testShouldCalcateAvgRunsPerDay(self):
     builds = Builds()
     builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed]
     self.assertEquals('1.5', builds.avg_runs());
コード例 #16
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testShouldOnlyParseThe5Builds(self) :
       configs = Configs()
       builds = Builds.create_builds(TestUtils().cclive_config(), None,2)
       self.assertEquals(2, len(builds))
       self.assertEquals(datetime(2008, 9, 24, 5, 25, 6), builds[0].start_time)
       self.assertEquals(datetime(2008, 9, 24, 6, 29, 41), builds[1].start_time)
コード例 #17
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testShouldFilter1Files(self):
       self.ccroot = self.root + '/analyse/tests/fixtures/cclive-release-jdk1.5'
       files = Builds.filter(self.ccroot, 1)
       self.assertEquals(1, len(files))
       self.assertEquals('log20080924062941.xml', files[0])
コード例 #18
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testShouldNotThrowExceptionWhenProcessingXmlFile(self):
   try:
       builds = Builds.create_builds(TestUtils().cclive_config(), "log20080624064201Lbuild.70.xml", 2)
   except Exception, e:
       self.fail('should not throw any exception at all')
コード例 #19
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testShouldParseAndPersit(self):
       self.assertEqual(0, len(Build.objects.all()))
       builds = Builds.create_builds(TestUtils().connectfour_config(), BuildFactoryTest.PATTERN, 2);
       self.assertEqual(2, len(Build.objects.all()))
コード例 #20
0
ファイル: build_factory_tests.py プロジェクト: khu/ianalyse
 def testToParseTheInformationCorrectly(self):
     builds = Builds.create_builds(TestUtils().connectfour_config(), BuildFactoryTest.PATTERN, 2);
     self.assertEqual('connectfour4', builds[0].name)
コード例 #21
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def test_should_calculate_avg_build_time(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed_at_oct_11]

        self.assertEquals('40.67', builds.avg_build_time())
コード例 #22
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def test_should_return_zero_as_avg_build_time_if_no_builds(self):
        builds = Builds()

        self.assertEquals('0', builds.avg_build_time())
コード例 #23
0
 def testGenerateTotalBuilds(self):
     Builds.create_builds(TestUtils().connectfour_config(), None, BuildTotalPassPercentageTest.PATTERN);
     self.assertEqual(2, Build.total('connectfour4'));
コード例 #24
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
 def testShouldCalcateAvgRunsPerDay(self):
     builds = Builds()
     builds.builds = [self.passed_at_oct_11,  self.passed_at_oct_11, self.passed_at_oct_11]
     self.assertEquals('3.00', builds.avg_runs());
コード例 #25
0
    def test_should_return_zero_if_no_passed_build(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11]

        n_days_summary = builds.get_n_days_summary();
        self.assertEquals(0, n_days_summary.failed_runs_values()[0].get('y'))
コード例 #26
0
ファイル: builds_tests.py プロジェクト: whimet/ianalyse
    def testShouldCalculateThePassRate(self):
        builds = Builds()
        builds.builds = [self.passed_at_oct_11,  self.another_passed_at_oct_11, self.failed]

        atime = datetime.strptime("20091011000000", "%Y%m%d%H%M%S")
        self.assertEquals(1, builds.group_by_each_day()[atime].pass_rate())
コード例 #27
0
 def test_should_return_zero_passed_build_if_no_builds(self):
     builds = Builds()
     n_days_summary = builds.get_n_days_summary();
     self.assertEquals(0, len(n_days_summary.failed_runs_values()))