def setUp(self): super().setUp() Model = ContentType.objects.get_for_model(ContractorDeliverable) self.cat1 = CategoryFactory(category_template__metadata_model=Model) self.cat2 = CategoryFactory(category_template__metadata_model=Model) self.user1 = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.cat1, send_behind_schedule_alert_mails=True) self.user1.categories.add(self.cat2) self.user2 = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.cat2, send_behind_schedule_alert_mails=True) self.doc1 = DocumentFactory( category=self.cat1, metadata_factory_class=ContractorDeliverableFactory, revision_factory_class=ContractorDeliverableRevisionFactory) self.doc2 = DocumentFactory( category=self.cat2, metadata_factory_class=ContractorDeliverableFactory, revision_factory_class=ContractorDeliverableRevisionFactory) populate_values_list_cache()
def setUp(self): # Clear the values list cache cache.clear() try: document = Document.objects.get( document_key='FAC10005-CTR-000-EXP-LAY-4891') self.doc_category = document.category except Document.DoesNotExist: self.doc_category = CategoryFactory() contract = ContractFactory.create(number='FAC10005-CTR-CLT-TRS-00001', categories=[self.doc_category]) self.contract_number = contract.number trs_content_type = ContentType.objects.get_for_model(Transmittal) self.trs_category = CategoryFactory( category_template__metadata_model=trs_content_type) self.tmpdir = tempfile.mkdtemp(prefix='phasetest_', suffix='_trs') self.incoming = join(self.tmpdir, 'incoming') self.tobechecked = join(self.tmpdir, 'tobechecked') self.accepted = join(self.tmpdir, 'accepted') self.rejected = join(self.tmpdir, 'rejected') os.mkdir(self.accepted) os.mkdir(self.rejected) os.mkdir(self.tobechecked) self.config = { 'INCOMING_DIR': self.incoming, 'REJECTED_DIR': self.rejected, 'TO_BE_CHECKED_DIR': self.tobechecked, 'ACCEPTED_DIR': self.accepted, 'EMAIL_LIST': ['*****@*****.**'], }
def test_get_category_list_from_name(): category_1 = CategoryFactory(name='Category 1') category_2 = CategoryFactory(name='Category 2') theme = ThemeFactory(name='Theme 1') theme.categories.set([category_1, category_2]) category_list = get_category_list_from_name('Category 1') assert len(category_list) == 1 category_list = get_category_list_from_name('Theme 1') assert len(category_list) == 2
def setUp(self): document = Document.objects.get( document_key='FAC10005-CTR-000-EXP-LAY-4891') self.doc_category = document.category trs_content_type = ContentType.objects.get_for_model(Transmittal) self.trs_category = CategoryFactory( category_template__metadata_model=trs_content_type) self.tmpdir = tempfile.mkdtemp(prefix='phasetest_', suffix='_trs') self.incoming = join(self.tmpdir, 'incoming') self.tobechecked = join(self.tmpdir, 'tobechecked') self.accepted = join(self.tmpdir, 'accepted') self.rejected = join(self.tmpdir, 'rejected') os.mkdir(self.accepted) os.mkdir(self.rejected) os.mkdir(self.tobechecked) self.config = { 'INCOMING_DIR': self.incoming, 'REJECTED_DIR': self.rejected, 'TO_BE_CHECKED_DIR': self.tobechecked, 'ACCEPTED_DIR': self.accepted, 'EMAIL_LIST': ['*****@*****.**'], }
def setUp(self): self.category = CategoryFactory() user = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=user.email, password='******') user2 = UserFactory(email='*****@*****.**', category=self.category) doc = DocumentFactory( document_key='hazop-report-1', category=self.category, revision={ 'leader': user, } ) doc.latest_revision.start_review() for _ in range(5): for u in (user, user2): NoteFactory( author=u, document=doc, revision=1) review_url = reverse('review_document', args=[doc.document_key]) self.url = '%s%s' % (self.live_server_url, review_url) self.test_file = os.path.join( os.path.dirname(__file__), 'casper_tests', 'tests.js' )
def test_otg_creation(self): ct = ContentType.objects.get_for_model(OutgoingTransmittal) cat_template = CategoryTemplateFactory( metadata_model=ct) dest_cat = CategoryFactory(category_template=cat_template) ctr1 = EntityFactory(type='contractor') ctr2 = EntityFactory(type='contractor') # We have to link third parties to categories self.category.third_parties.add(ctr1, ctr2) dest_cat.third_parties.add(ctr1, ctr2) recipients_ids = [ctr1.pk, ctr2.pk] document_ids = [doc.pk for doc in self.docs] do_create_transmittal.delay( self.user.id, self.category.id, dest_cat.id, document_ids, self.contract.number, recipients_ids ) # We have 2 docs and 2 recipients, so we expect 2 outgoing trs # and 2 notifications self.assertEqual(OutgoingTransmittal.objects.count(), 2) self.assertEqual(Notification.objects.count(), 2) # Check each doc revision links to both transmittals for rev in self.revisions: self.assertEqual(rev.transmittals.count(), 2)
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=self.user.email, password='******') self.doc1 = DocumentFactory(category=self.category, revision={ 'leader': self.user, 'received_date': datetime.date.today(), }) self.doc2 = DocumentFactory(category=self.category, revision={ 'leader': self.user, 'received_date': datetime.date.today(), }) self.doc3 = DocumentFactory(category=self.category, revision={ 'reviewers': [], 'leader': None, 'approver': None, 'received_date': datetime.date.today(), }) self.content_type = ContentType.objects.get_for_model( self.doc3.metadata) self.ok = 'The review started for the following documents' self.nok = "We failed to start the review for the following documents"
def setUp(self): delete_index() create_index() self.category = CategoryFactory() put_category_mapping(self.category.id) user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) connect_signals() for doc_id in range(20): doc = DocumentFactory( document_key='hazop-report-%d' % doc_id, category=self.category, ) index_document(doc.id) # ES needs some time to finish indexing time.sleep(1) document_list_url = reverse('category_document_list', args=[ self.category.organisation.slug, self.category.slug ]) self.url = '%s%s' % (self.live_server_url, document_list_url) self.client.login(email=user.email, password='******') self.test_file = os.path.join( os.path.dirname(__file__), 'casper_tests', 'tests.js' )
def test_updating_user_with_category_deletion(self): """Validation of required inlines. When a user is updated, one can require category deletions. We MUST make sure that there is always one category left. """ user = UserFactory() category = CategoryFactory() category.users.add(user) category.save() url = reverse('admin:accounts_user_change', args=[user.id]) data = { 'email': '*****@*****.**', 'name': 'Test', 'password1': 'password', 'password2': 'password', 'Category_users-INITIAL_FORMS': 1, 'Category_users-MAX_NUM_FORMS': 1000, 'Category_users-TOTAL_FORMS': 1, 'Category_users-0-DELETE': 1, 'Category_users-0-id': category.id, 'Category_users-0-user': user.id, } res = self.client.post(url, data) self.assertContains(res, 'Please select at least one category')
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(name='User', password='******', is_superuser=True, category=self.category) self.client.login(username=self.user.email, password='******')
def setUp(self): Model = ContentType.objects.get_for_model(ContractorDeliverable) self.category = CategoryFactory(category_template__metadata_model=Model) self.user = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.user2 = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.user3 = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.data = { 'docclass': 3, 'purpose_of_issue': 'FR', 'created_on': '2015-01-01', 'received_date': '2015-01-01' }
def test_create_trs_with_invalid_from_category(self): """Source category must contain transmittable documents.""" invalid_cat = CategoryFactory() revisions = self.create_docs() with self.assertRaises(errors.InvalidCategoryError): create_transmittal(invalid_cat, self.dst_category, revisions, self.linked_contract.number, self.entity)
def test_create_trs_with_invalid_dest_category(self): """Destination category must contain outgoing transmittals.""" invalid_cat = CategoryFactory() revisions = self.create_docs() with self.assertRaises(errors.InvalidCategoryError): create_transmittal(self.category, invalid_cat, revisions, self.linked_contract.number, self.entity)
def setUp(self): self.category = CategoryFactory() self.user = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category ) self.other_user = UserFactory( email='*****@*****.**', password='******', ) self.client.login(email=self.user.email, password='******') doc = DocumentFactory( document_key='test_key', category=self.category, revision={ 'reviewers': [], 'leader': self.user, 'received_date': datetime.date.today(), } ) revision = doc.latest_revision revision.start_review() self.review = revision.get_review(self.user) self.url = self.review.get_comments_url() pdf_doc = 'sample_doc_pdf.pdf' self.sample_pdf = SimpleUploadedFile(pdf_doc, b'content')
def test_wrong_category_error(self): trs_import = self.prepare_fixtures('single_correct_trs', 'FAC10005-CTR-CLT-TRS-00001') trs_import.doc_category = CategoryFactory() self.assertTrue( 'wrong_category' in trs_import.errors['csv_content'][2])
def test_log_aid_search_event(perimeters): theme_1 = ThemeFactory(name='Nature environnement risques') theme_2 = ThemeFactory(name='Developpement economique') category_1 = CategoryFactory(name='economie circulaire') request_get_urlencoded = ( "drafts=True&call_for_projects_only=False" "&targeted_audiences=department" f"&perimeter={perimeters['montpellier'].id_slug}" f"&themes={theme_1.slug}&themes={theme_2.slug}" f"&categories={category_1.slug}&categories=&apply_before=") results_count = 15 host = "francemobilites.aides-territoires.beta.gouv.fr" log_aidsearchevent( querystring=request_get_urlencoded, results_count=results_count, source=host) event = AidSearchEvent.objects.last() assert len(event.targeted_audiences) == 1 assert event.targeted_audiences[0] == Aid.AUDIENCES.department assert event.perimeter == perimeters['montpellier'] assert event.themes.count() == 2 assert event.results_count == results_count assert event.source == 'francemobilites'
def setUp(self): self.trs_import = TrsImport( trs_dir='/tmp/dummy_dir/FAC10005-CTR-CLT-TRS-00001', tobechecked_dir='/tmp/dummy_dir', accepted_dir='/tmp/dummy_dir', rejected_dir='/tmp/dummy_dir', email_list=['*****@*****.**', '*****@*****.**'], contractor='dummy_dir', doc_category=CategoryFactory(), trs_category=CategoryFactory(), ) self.trs_import._errors = { 'error1': 'This is error 1', 'error2': 'This is error 2', } self.report = ErrorReport(self.trs_import)
def setUp(self): self.category = CategoryFactory() user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=user.email, password='******') self.url = reverse('transmittal_list')
def category(self, create, extracted, **kwargs): if not create: return if extracted: extracted.users.add(self) else: category = CategoryFactory() category.users.add(self)
def test_retrieve(self): category = CategoryFactory(name="test") api = reverse(f"{self.api_basename}-detail", kwargs={"pk": category.id}) response = self.client.get(api, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['name'], category.name) self.assertEqual(response.data['slug'], category.slug)
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.doc = DocumentFactory(document_key='HAZOP-related', category=self.category)
def test_get(self): category = CategoryFactory(name="test") api = reverse(f"{self.api_basename}-list") response = self.client.get(api) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data["results"]), 1) self.assertEqual(response.data["results"][0]["name"], category.name) self.assertEqual(response.data["results"][0]["slug"], category.slug)
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=self.user.email, password='******') Model = ContentType.objects.get_for_model(ContractorDeliverable) self.category = CategoryFactory( category_template__metadata_model=Model) self.docs = [ DocumentFactory( metadata_factory_class=ContractorDeliverableFactory, revision_factory_class=ContractorDeliverableRevisionFactory, category=self.category) for _ in range(1, 3) ] self.revisions = [doc.get_latest_revision() for doc in self.docs] self.contract = ContractFactory.create(categories=[self.category])
def setUp(self): self.category = CategoryFactory() user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=user.email, password='******') self.doc = DocumentFactory() self.rev = self.doc.get_latest_revision()
def setUp(self): Model = ContentType.objects.get_for_model(ContractorDeliverable) self.category = CategoryFactory( category_template__metadata_model=Model) self.users = [ UserFactory(email='*****@*****.**' % user, password='******', category=self.category) for user in range(1, 5) ]
def setUp(self): self.category = CategoryFactory() user = UserFactory( email='*****@*****.**', password='******', is_superuser=True, category=self.category, ) self.client.login(email=user.email, password='******')
def test_categories_filter_overriding(client, settings): categories = [ CategoryFactory(name='Category 1'), CategoryFactory(name='Category 2'), CategoryFactory(name='Category 3'), CategoryFactory(name='Category 4'), CategoryFactory(name='Category 5'), ] # We create a minisite with all categories pre-filter page = MinisiteFactory(title='Gloubiboulga page', search_querystring='text=fromage') page.available_categories.set(categories) page_url = reverse('search_view') page_host = '{}.aides-territoires'.format(page.slug) settings.ALLOWED_HOSTS = [page_host] # All categories appear in the form res = client.get(page_url, HTTP_HOST=page_host) assert res.status_code == 200 content = res.content.decode() assert '<option value="category-1"' in content assert '<option value="category-2"' in content assert '<option value="category-3"' in content assert '<option value="category-4"' in content assert '<option value="category-5"' in content # We create a minisite with a category pre-filter page = MinisiteFactory(title='Gloubiboulga page 2', search_querystring='text=fromage') page.available_categories.set(categories[:2]) page_url = reverse('search_view') page_host = '{}.aides-territoires'.format(page.slug) settings.ALLOWED_HOSTS = [page_host] # Only the available categories appear in the form res = client.get(page_url, HTTP_HOST=page_host) assert res.status_code == 200 content = res.content.decode() assert '<option value="category-1"' in content assert '<option value="category-2"' in content assert '<option value="category-3"' not in content assert '<option value="category-4"' not in content assert '<option value="category-5"' not in content
def setUp(self): doc_category = CategoryFactory() self.doc_category_path = '{}/{}'.format( doc_category.organisation.slug, doc_category.category_template.slug) trs_content_type = ContentType.objects.get_for_model(Transmittal) trs_category = CategoryFactory(category_template__metadata_model=trs_content_type) self.trs_category_path = '{}/{}'.format( trs_category.organisation.slug, trs_category.category_template.slug) path_config = settings.TRS_IMPORTS_CONFIG ctr_path_config = path_config.get(TEST_CTR) self.import_root = settings.TRS_IMPORTS_ROOT self.incoming_dir = ctr_path_config['INCOMING_DIR'] self.rejected_dir = ctr_path_config['REJECTED_DIR'] self.to_be_checked_dir = ctr_path_config['TO_BE_CHECKED_DIR'] self.accepted_dir = ctr_path_config['ACCEPTED_DIR']
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(email='*****@*****.**', password='******', is_superuser=True, category=self.category) self.client.login(email=self.user.email, password='******') self.url = reverse( 'export_create', args=[self.category.organisation.slug, self.category.slug])
def setUp(self): self.category = CategoryFactory() self.user = UserFactory(email='*****@*****.**', password='******', category=self.category) self.client.login(email=self.user.email, password='******') self.user2 = UserFactory(email='*****@*****.**', password='******', category=self.category)