def test_merge_overlap(testing_user):
    """Tests merge with resources shared and not shared between tags"""
    winner_tag = tag_factory(user=testing_user)
    loser_tag = tag_factory(user=testing_user)

    shared_resource = resource_factory(user=testing_user)
    other_resource = resource_factory(user=testing_user)

    # Can't use add on m2m using defined intermediary model
    ResourceTag.objects.create(tag=winner_tag,
                               resource=shared_resource,
                               create_user=testing_user)
    ResourceTag.objects.create(tag=loser_tag,
                               resource=shared_resource,
                               create_user=testing_user)
    ResourceTag.objects.create(tag=loser_tag,
                               resource=other_resource,
                               create_user=testing_user)

    TagTracker.objects.create(user=testing_user,
                              tag=winner_tag,
                              extra_data="1")
    TagTracker.objects.create(user=testing_user, tag=loser_tag, extra_data="2")
    TagTracker.objects.create(user=testing_user, tag=loser_tag, extra_data="3")

    # Quick sanity check
    assert shared_resource.tags.all().count() == 2
    assert other_resource.tags.all().count() == 1
    assert winner_tag.tracker.all().count() == 1

    winner_tag.merge(loser_tag)

    assert shared_resource.tags.all().count() == 1
    assert Tag.tags.all().count() == 1
    assert winner_tag.tracker.all().count() == 3
示例#2
0
def test_merge_overlap(testing_user):
    """Tests merge with resources shared and not shared between tags"""
    winner_tag = tag_factory(user=testing_user)
    loser_tag = tag_factory(user=testing_user)

    shared_resource = resource_factory(user=testing_user)
    other_resource = resource_factory(user=testing_user)

    # Can't use add on m2m using defined intermediary model
    ResourceTag.objects.create(tag=winner_tag, resource=shared_resource, create_user=testing_user)
    ResourceTag.objects.create(tag=loser_tag, resource=shared_resource, create_user=testing_user)
    ResourceTag.objects.create(tag=loser_tag, resource=other_resource, create_user=testing_user)

    TagTracker.objects.create(user=testing_user, tag=winner_tag, extra_data="1")
    TagTracker.objects.create(user=testing_user, tag=loser_tag, extra_data="2")
    TagTracker.objects.create(user=testing_user, tag=loser_tag, extra_data="3")

    # Quick sanity check
    assert shared_resource.tags.all().count() == 2
    assert other_resource.tags.all().count() == 1
    assert winner_tag.tracker.all().count() == 1

    winner_tag.merge(loser_tag)

    assert shared_resource.tags.all().count() == 1
    assert Tag.tags.all().count() == 1
    assert winner_tag.tracker.all().count() == 3
示例#3
0
 def setUpClass(cls):
     cls.user = User.objects.create(username="******")
     resource = resource_factory(user=cls.user, status='approved')
     second_resource= resource_factory(user=cls.user, status='pending')
     used_tag = tag_factory(user=cls.user)
     second_tag = tag_factory(user=cls.user)
     unused_tag = tag_factory(user=cls.user)  # noqa
     non_public_tag = tag_factory(user=cls.user, published=False)
     ResourceTag.objects.create(create_user=cls.user, tag=used_tag, resource=resource)
     ResourceTag.objects.create(create_user=cls.user, tag=used_tag, resource=second_resource)
     ResourceTag.objects.create(create_user=cls.user, tag=second_tag, resource=second_resource)
     ResourceTag.objects.create(create_user=cls.user, tag=non_public_tag, resource=second_resource)
    def setUpClass(cls):
        super(ReviewTestCase, cls).setUpClass()

        cls.medical_role, _ = ReviewerRole.objects.get_or_create(
            name='medical')
        cls.technical_role, _ = ReviewerRole.objects.get_or_create(
            name='technical')

        cls.staff_user, _ = User.objects.get_or_create(username="******",
                                                       is_staff=True,
                                                       email="*****@*****.**")
        cls.reviewer, _ = User.objects.get_or_create(username="******",
                                                     email="*****@*****.**")
        cls.nonreviewer, _ = User.objects.get_or_create(
            username="******", email="*****@*****.**")

        cls.profile_one, _ = UserProfile.objects.get_or_create(
            user=cls.staff_user)
        cls.profile_one.reviewer_roles.add(cls.medical_role)
        cls.profile_two, _ = UserProfile.objects.get_or_create(
            user=cls.reviewer)
        cls.profile_two.reviewer_roles.add(cls.technical_role)

        cls.resource = resource_factory(
            user=cls.nonreviewer,
            title=u"Básica salud del recién nacido",
            description=u"Básica salud del recién nacido",
        )
示例#5
0
 def test_unique_slugification(self, admin_user):
     """Unique slug is generated for new resources"""
     test_user = admin_user
     original = resource_factory(
         user=test_user,
         title=u"Básica salud del recién nacido",
         description=u"Básica salud del recién nacido",
     )
     duplicate = resource_factory(
         user=test_user,
         title=u"Básica salud del recién nacido",
         description=u"Básica salud del recién nacido",
     )
     assert original.slug == "basica-salud-del-recien-nacido"
     assert original.slug != duplicate.slug
     assert duplicate.slug == "basica-salud-del-recien-nacido-2"
示例#6
0
    def setUpClass(cls):
        super(AssignmentFormTests, cls).setUpClass()

        cls.user_one, _ = get_user_model().objects.get_or_create(username="******")
        cls.user_two, _ = get_user_model().objects.get_or_create(username="******")
        cls.user_three, _ = get_user_model().objects.get_or_create(username="******")
        cls.user_four, _ = get_user_model().objects.get_or_create(username="******")

        cls.medical_role, _ = ReviewerRole.objects.get_or_create(name='medical')
        cls.technical_role, _ = ReviewerRole.objects.get_or_create(name='technical')

        cls.profile_one, _ = UserProfile.objects.get_or_create(user=cls.user_one)
        cls.profile_one.reviewer_roles.add(cls.medical_role)

        cls.profile_two, _ = UserProfile.objects.get_or_create(user=cls.user_two)
        cls.profile_two.reviewer_roles.add(cls.technical_role)

        cls.profile_three, _ = UserProfile.objects.get_or_create(user=cls.user_three)
        cls.profile_three.reviewer_roles.add(cls.technical_role)

        cls.resource = resource_factory(
            user=cls.user_four,
            title=u"Básica salud del recién nacido",
            description=u"Básica salud del recién nacido",
        )
示例#7
0
    def setUpClass(cls):
        super(AssignmentFormTests, cls).setUpClass()

        cls.user_one, _ = get_user_model().objects.get_or_create(
            username="******")
        cls.user_two, _ = get_user_model().objects.get_or_create(
            username="******")
        cls.user_three, _ = get_user_model().objects.get_or_create(
            username="******")
        cls.user_four, _ = get_user_model().objects.get_or_create(
            username="******")

        cls.medical_role, _ = ReviewerRole.objects.get_or_create(
            name='medical')
        cls.technical_role, _ = ReviewerRole.objects.get_or_create(
            name='technical')

        cls.profile_one, _ = UserProfile.objects.get_or_create(
            user=cls.user_one)
        cls.profile_one.reviewer_roles.add(cls.medical_role)

        cls.profile_two, _ = UserProfile.objects.get_or_create(
            user=cls.user_two)
        cls.profile_two.reviewer_roles.add(cls.technical_role)

        cls.profile_three, _ = UserProfile.objects.get_or_create(
            user=cls.user_three)
        cls.profile_three.reviewer_roles.add(cls.technical_role)

        cls.resource = resource_factory(
            user=cls.user_four,
            title="Básica salud del recién nacido",
            description="Básica salud del recién nacido",
        )
示例#8
0
    def test_non_latin_slugification(self, admin_user):
        """Non-latin characters should be transliterated"""
        test_user = admin_user
        cyrillic_resource= resource_factory(
            user=test_user,
            title=u"Санкт-Петербург Питоны",  # Saint Petersburg Pythons
            description=u"Some resource",
        )
        assert cyrillic_resource.slug == u"sankt-peterburg-pitony"

        chinese_resource= resource_factory(
            user=test_user,
            title=u"北京蟒蛇",  # Beijing Pythons
            description=u"Some resource",
        )
        assert chinese_resource.slug == u"bei-jing-mang-she"
示例#9
0
 def test_unique_slugification(self, admin_user):
     """Unique slug is generated for new resources"""
     test_user = admin_user
     original = resource_factory(
         user=test_user,
         title="Básica salud del recién nacido",
         description="Básica salud del recién nacido",
     )
     duplicate = resource_factory(
         user=test_user,
         title="Básica salud del recién nacido",
         description="Básica salud del recién nacido",
     )
     assert original.slug == "basica-salud-del-recien-nacido"
     assert original.slug != duplicate.slug
     assert duplicate.slug == "basica-salud-del-recien-nacido-2"
示例#10
0
    def test_non_latin_slugification(self, admin_user):
        """Non-latin characters should be transliterated"""
        test_user = admin_user
        cyrillic_resource = resource_factory(
            user=test_user,
            title="Санкт-Петербург Питоны",  # Saint Petersburg Pythons
            description="Some resource",
        )
        assert cyrillic_resource.slug == "sankt-peterburg-pitony"

        chinese_resource = resource_factory(
            user=test_user,
            title="北京蟒蛇",  # Beijing Pythons
            description="Some resource",
        )
        assert chinese_resource.slug == "bei-jing-mang-she"
示例#11
0
def remote_resource(import_user, peer_instance):
    """Fixture for a remotely created resource"""
    yield resource_factory(
        user=import_user,
        title="A remote resource",
        description="<p>A remote resource</p>",
        source_peer=peer_instance,
    )
    def setUpClass(cls):
        super(ReviewQuerysetTests, cls).setUpClass()
        cls.resource_two = resource_factory(
            user=cls.nonreviewer,
            title="Second review",
            description="Básica salud del recién nacido",
        )
        cls.resource_three = resource_factory(
            user=cls.nonreviewer,
            title="Third réview",
            description="Básica salud del recién nacido",
        )

        ContentReview.objects.create(
            role=cls.medical_role,
            reviewer=cls.staff_user,
            resource=cls.resource,
            status=Resource.APPROVED,
        )
        ContentReview.objects.create(
            role=cls.technical_role,
            reviewer=cls.reviewer,
            resource=cls.resource,
            status=Resource.REJECTED,
        )

        ContentReview.objects.create(
            role=cls.medical_role,
            reviewer=cls.staff_user,
            resource=cls.resource_two,
            status=Resource.APPROVED,
        )
        ContentReview.objects.create(
            role=cls.technical_role,
            reviewer=cls.reviewer,
            resource=cls.resource_two,
            status=Resource.PENDING,
        )

        with freeze_time(date.today() - timedelta(days=15)):
            cls.overdue = ContentReview.objects.create(
                role=cls.technical_role,
                reviewer=cls.reviewer,
                resource=cls.resource_three,
                status=Resource.PENDING,
            )
示例#13
0
def remote_resource(import_user, test_peer):
    """Fixture for a remotely created resource"""
    yield resource_factory(
        user=import_user,
        title=u"A remote resource",
        description=u"<p>A remote resource</p>",
        source_peer=test_peer,
    )
示例#14
0
def remote_resource(import_user, test_peer):
    """Fixture for a remotely created resource"""
    yield resource_factory(
        user=import_user,
        title=u"A remote resource",
        description=u"<p>A remote resource</p>",
        source_peer=test_peer,
    )
示例#15
0
    def setUpClass(cls):
        """Returns only resources that were sourced from peer instances"""
        cls.user = User.objects.create(username="******")
        cls.updater = User.objects.create(username="******")
        cls.staff = User.objects.create(username="******", is_staff=True)
        role = ReviewerRole.objects.create(name="Medical")
        cls.crt_user = User.objects.create(username="******")
        profile = UserProfile.objects.create(user=cls.crt_user)
        profile.reviewer_roles.add(role)

        approved = resource_factory(
            user=cls.user,
            title=u"Básica salud del recién nacido",
            description=u"Básica salud del recién nacido",
            status=Resource.APPROVED,
        )
        unapproved_user = resource_factory(
            create_user=cls.user,
            update_user=cls.updater,
            title=u"Unapproved resource",
            description=u"Unapproved, owned by user",
        )
        unapproved_staff = resource_factory(
            user=cls.staff,
            title=u"Staff resource",
            description=u"Unapproved, owned by staff user",
        )
        archived_resource = resource_factory(
            user=cls.staff,
            title=u"Archived",
            description=u"Archived, owned by staff user",
            status=Resource.ARCHIVED,
        )

        resource_url_factory(resource=approved, user=cls.user)
        resource_url_factory(resource=unapproved_user, user=cls.user)
示例#16
0
    def setUpClass(cls):
        """Returns only resources that were sourced from peer instances"""
        cls.user = User.objects.create(username="******")
        cls.updater = User.objects.create(username="******")
        cls.staff = User.objects.create(username="******", is_staff=True)
        role = ReviewerRole.objects.create(name="Medical")
        cls.crt_user = User.objects.create(username="******")
        profile = UserProfile.objects.create(user=cls.crt_user)
        profile.reviewer_roles.add(role)

        approved = resource_factory(
            user=cls.user,
            title="Básica salud del recién nacido",
            description="Básica salud del recién nacido",
            status=Resource.APPROVED,
        )
        unapproved_user = resource_factory(
            create_user=cls.user,
            update_user=cls.updater,
            title="Unapproved resource",
            description="Unapproved, owned by user",
        )
        unapproved_staff = resource_factory(
            user=cls.staff,
            title="Staff resource",
            description="Unapproved, owned by staff user",
        )
        archived_resource = resource_factory(
            user=cls.staff,
            title="Archived",
            description="Archived, owned by staff user",
            status=Resource.ARCHIVED,
        )

        resource_url_factory(resource=approved, user=cls.user)
        resource_url_factory(resource=unapproved_user, user=cls.user)
示例#17
0
    def setUpClass(cls):
        super(ReviewTestCase, cls).setUpClass()

        cls.medical_role, _ = ReviewerRole.objects.get_or_create(name='medical')
        cls.technical_role, _ = ReviewerRole.objects.get_or_create(name='technical')

        cls.staff_user, _ = User.objects.get_or_create(
            username="******", is_staff=True, email="*****@*****.**")
        cls.reviewer, _ = User.objects.get_or_create(
            username="******", email="*****@*****.**")
        cls.nonreviewer, _ = User.objects.get_or_create(
            username="******", email="*****@*****.**")

        cls.profile_one, _ = UserProfile.objects.get_or_create(user=cls.staff_user)
        cls.profile_one.reviewer_roles.add(cls.medical_role)
        cls.profile_two, _ = UserProfile.objects.get_or_create(user=cls.reviewer)
        cls.profile_two.reviewer_roles.add(cls.technical_role)

        cls.resource = resource_factory(
            user=cls.nonreviewer,
            title=u"Básica salud del recién nacido",
            description=u"Básica salud del recién nacido",
        )
示例#18
0
def test_resource(testing_user):
    yield resource_factory(
        user=testing_user,
        title=u"Básica salud del recién nacido",
        description=u"Básica salud del recién nacido",
    )
示例#19
0
def test_resource(testing_user):
    yield resource_factory(
        user=testing_user,
        title=u"Básica salud del recién nacido",
        description=u"Básica salud del recién nacido",
    )