[virtualcommons-svn] commit/vcweb: 2 new changesets
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2011-06-08 00:05:13
|
2 new changesets in vcweb: http://bitbucket.org/virtualcommons/vcweb/changeset/0a4fb82a06ff/ changeset: 0a4fb82a06ff user: alllee date: 2011-06-08 01:52:48 summary: Adding test for issue 17, still unable to reproduce. affected #: 3 files (268 bytes) --- a/vcweb/core/models.py Tue Jun 07 16:10:33 2011 -0700 +++ b/vcweb/core/models.py Tue Jun 07 16:52:48 2011 -0700 @@ -442,7 +442,7 @@ def log(self, log_message): if log_message: - logger.debug(log_message) + logger.debug("%s: %s", self, log_message) self.activity_log.create(round_configuration=self.current_round, log_message=log_message) def data_file_name(self, file_ext='csv'): @@ -690,7 +690,7 @@ return Template(template_string).substitute(kwargs, round_number=self.display_number, participant_id=participant_id) def __unicode__(self): - return u"%s > %s" % (self.display_label, self.experiment_configuration) + return u"%s > %s %s" % (self.display_label, self.experiment_configuration, self.sequence_label) @property def display_label(self): --- a/vcweb/forestry/models.py Tue Jun 07 16:10:33 2011 -0700 +++ b/vcweb/forestry/models.py Tue Jun 07 16:52:48 2011 -0700 @@ -118,6 +118,7 @@ ''' if should_reset_resource_level(round_configuration): initial_resource_level = get_initial_resource_level(round_configuration) + logger.debug("Resetting resource level for %s to %d", round_configuration, initial_resource_level) for group in experiment.groups.all(): ''' set resource level to initial default ''' group.log("Setting resource level to initial value [%s]" % initial_resource_level) --- a/vcweb/forestry/tests.py Tue Jun 07 16:10:33 2011 -0700 +++ b/vcweb/forestry/tests.py Tue Jun 07 16:52:48 2011 -0700 @@ -2,12 +2,7 @@ ParticipantRoundDataValue, GroupRoundDataValue, ParticipantExperimentRelationship, ParticipantGroupRelationship) from vcweb.core.tests import BaseVcwebTest -from vcweb.forestry.models import (get_group_harvest_parameter, - get_regrowth_parameter, round_setup, round_teardown, get_resource_level, - set_resource_level, set_harvest_decision, get_harvest_decision_parameter, - get_harvest_decisions, forestry_sender, get_forestry_experiment_metadata, - get_resource_level_parameter, should_reset_resource_level, - get_initial_resource_level) +from vcweb.forestry.models import * import logging logger = logging.getLogger(__name__) @@ -90,11 +85,7 @@ e.current_round_sequence_number = rc.sequence_number self.assertEqual(e.current_round_template, 'forestry/quiz.html', 'should return default quiz.html') -''' -FIXME: several of these can and should be lifted to core/tests.py -''' -class ForestryParametersTest(BaseVcwebTest): - +class TransferParametersTest(BaseVcwebTest): def test_transfer_parameters(self): def calculate_expected_resource_level(resource_level, harvested): after_harvest = max(resource_level - harvested, 0) @@ -102,20 +93,35 @@ e = self.advance_to_data_round() expected_resource_level = 100 - while (e.has_next_round): + while True: e.start_round() current_round_configuration = e.current_round if should_reset_resource_level(current_round_configuration): + logger.debug("resetting resource level for round %s, %d", current_round_configuration, + e.current_round_sequence_number) expected_resource_level = get_initial_resource_level(current_round_configuration) + + max_harvest_decision = get_max_harvest_decision(expected_resource_level) for pgr in e.participant_group_relationships: self.assertEquals(get_resource_level(pgr.group).value, expected_resource_level) - set_harvest_decision(pgr, 5) + set_harvest_decision(pgr, max_harvest_decision) e.end_round() - resource_level = calculate_expected_resource_level(expected_resource_level, 25) + + if current_round_configuration.is_playable_round: + expected_resource_level = calculate_expected_resource_level(expected_resource_level, max_harvest_decision * 5) + for group in e.groups.all(): - self.assertEquals(get_resource_level(pgr.group).value, resource_level) - e.advance_to_next_round() + self.assertEquals(get_resource_level(pgr.group).value, expected_resource_level) + if e.has_next_round: + e.advance_to_next_round() + else: + break + +class ForestryParametersTest(BaseVcwebTest): + ''' + FIXME: several of these can and should be lifted to core/tests.py + ''' def test_initialize_parameters_at_round_start(self): e = self.advance_to_data_round() e.start_round() http://bitbucket.org/virtualcommons/vcweb/changeset/f19f88e42fb4/ changeset: f19f88e42fb4 user: alllee date: 2011-06-08 02:05:12 summary: phasing out transfer_to_next_round on forestry round_teardown, fixes issue 17 affected #: 2 files (236 bytes) --- a/vcweb/core/models.py Tue Jun 07 16:52:48 2011 -0700 +++ b/vcweb/core/models.py Tue Jun 07 17:05:12 2011 -0700 @@ -1029,6 +1029,10 @@ self.transfer_parameter(parameter, value) def transfer_parameter(self, parameter, value): + if self.experiment.is_last_round: + logger.error("Trying to transfer parameter (%s: %s) past the last round of the experiment", + parameter, value) + return None next_round_data, created = self.experiment.round_data.get_or_create(round_configuration=self.experiment.next_round) logger.debug("next round data: %s (%s)", next_round_data, created) group_data_value, created = next_round_data.group_data_values.get_or_create(group=self, parameter=parameter, defaults={'value': value}) --- a/vcweb/forestry/models.py Tue Jun 07 16:52:48 2011 -0700 +++ b/vcweb/forestry/models.py Tue Jun 07 17:05:12 2011 -0700 @@ -129,9 +129,11 @@ pass def round_teardown(experiment, **kwargs): - ''' round teardown calculates new resource levels for practice or regular rounds based on the group harvest and resultant regrowth and transferring''' - logger.debug("%s", experiment) - resource_level_parameter = get_resource_level_parameter() + ''' + calculates new resource levels for practice or regular rounds based on the group harvest and resultant regrowth. + also responsible for transferring those parameters to the next round as needed. + ''' + logger.debug(experiment) current_round_configuration = experiment.current_round max_resource_level = 100 for group in experiment.groups.all(): @@ -155,7 +157,7 @@ if experiment.has_next_round: ''' set group round data resource_level for each group + regrowth ''' group.log("Transferring resource level %s to next round" % get_resource_level(group)) - group.transfer_to_next_round(resource_level_parameter) + group.transfer_parameter(current_resource_level.parameter, current_resource_level.value) ''' FIXME: figure out a better way to tie these signal handlers to a specific Repository URL: https://bitbucket.org/virtualcommons/vcweb/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |