def setUp(self): from gites.core.browser.tarif_edition import TarifEditionView request = TestRequest() self.view = TarifEditionView(object(), request)
class TarifsMapperTest(GitesWallonsDBTestCase): layer = GITES_CORE_WITH_ZCML gites_wallons_sql_file = ('tarifs') @property def _proprio_hebs_vocabulary(self): items = [] items.append(SimpleTerm(81, 81, u'81 - La turbine')) return SimpleVocabulary(items) def setUp(self): from gites.core.browser.tarif_edition import TarifEditionView request = TestRequest() self.view = TarifEditionView(object(), request) def tearDown(self): super logout() def test_validate_good_value(self): self.view.request = TestRequest( form={'tarif_min_LOW_SEASON_WEEK': '100', 'tarif_max_LOW_SEASON_WEEK': '200'}) portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ['Manager']) result = self.view.validate() self.assertTrue(result) def test_validate_wrong_value(self): self.view.request = TestRequest( form={'tarif_min_LOW_SEASON_WEEK': '100', 'tarif_max_LOW_SEASON_WEEK': 'foo'}) portal = self.layer['portal'] login(portal, 'manager') result = self.view.validate() self.assertFalse(result) def test_validate_proprio(self): self.view.request = TestRequest(form={'heb_pk': '81'}) self.mock(self.view, '_get_proprio_hebs', return_value=self._proprio_hebs_vocabulary) portal = self.layer['portal'] login(portal, 'proprio') result = self.view.validate() self.assertTrue(result) def test_validate_wrong_role(self): result = self.view.validate() self.assertFalse(result) def test_apply_tarifs_changes(self): tarifs = Tarifs.get_hebergement_tarifs(81) tarif_pk = tarifs[0].pk self.assertEqual(len(tarifs), 1) self.assertEqual(tarifs[0].min, 50) self.assertEqual(tarifs[0].max, 60) # New values given self.view.request = TestRequest( form={'tarif_min_LOW_SEASON_WEEK': '100', 'tarif_max_LOW_SEASON_WEEK': '200', 'tarif_heb_pk': 81}) portal = self.layer['portal'] login(portal, 'manager') self.view.apply_tarifs_changes() transaction.commit() # New line inserted with new values tarifs = Tarifs.get_hebergement_tarifs(81) self.assertTrue(len(tarifs) > 1) for tarif in tarifs: if tarif.type == 'LOW_SEASON' and tarif.subtype == 'WEEK': self.assertNotEqual(tarif.pk, tarif_pk) self.assertEqual(tarif.min, 100) self.assertEqual(tarif.max, 200) self.assertEqual(tarif.valid, True) def test_apply_tarifs_changes_no_heb(self): tarifs = Tarifs.get_hebergement_tarifs(81) tarif_pk = tarifs[0].pk self.assertEqual(len(tarifs), 1) self.assertEqual(tarifs[0].min, 50) self.assertEqual(tarifs[0].max, 60) # No heb given self.view.request = TestRequest( form={'tarif_min_LOW_SEASON_WEEK': '100', 'tarif_max_LOW_SEASON_WEEK': '200'}) self.view.apply_tarifs_changes() transaction.commit() # Nothing changes tarifs = Tarifs.get_hebergement_tarifs(81) for tarif in tarifs: if tarif.type == 'LOW_SEASON' and tarif.subtype == 'WEEK': self.assertEqual(tarif.pk, tarif_pk) self.assertEqual(tarif.min, 50) self.assertEqual(tarif.max, 60) def test_apply_tarifs_changes_exist(self): """ cf if to_confirm_exist: in tarif_edition """ tarifs = Tarifs.get_hebergement_tarifs(81) tarif_pk = tarifs[0].pk self.assertEqual(len(tarifs), 1) self.assertEqual(tarifs[0].min, 50) self.assertEqual(tarifs[0].max, 60) # Same values given self.view.request = TestRequest( form={'tarif_min_LOW_SEASON_WEEK': '50', 'tarif_max_LOW_SEASON_WEEK': '60', 'tarif_heb_pk': 81}) # No new line inserted self.view.apply_tarifs_changes() transaction.commit() tarifs = Tarifs.get_hebergement_tarifs(81) for tarif in tarifs: if tarif.type == 'LOW_SEASON' and tarif.subtype == 'WEEK': self.assertEqual(tarif.pk, tarif_pk) self.assertEqual(tarif.min, 50) self.assertEqual(tarif.max, 60)