def test_empty_fixture(self):
     # Since we allow dynamic populating of Fixture instances, loading
     # empty ones should not produce an error (unlike Django, where empty
     # fixture files will do that).
     band_fixture = Fixture(Band)
     band_fixture.load()
     self.assertEqual(Band.objects.count(), 0)
 def test_fk_to_pk_value(self):
     company = Company.objects.create(name='Macrohard')
     employee_fixture = Fixture(Employee)
     employee_fixture.add(1, name='Andy Depressant', company=1, manager=None)
     employee_fixture.load()
     self.assertEqual(Employee.objects.count(), 1)
     self.assertTrue(Employee.objects.all()[0].company == company)
 def test_single_m2m_to_pk_value(self):
     band = Band.objects.create(pk=1, name="Nuns N' Hoses")
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[1])
     roadie_fixture.load()
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.filter(name="Nuns N' Hoses").count(), 1)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.filter(name='Marshall Amp').count(), 1)
 def test_illegal_reverse_fk_assignment(self):
     employee_fixture = Fixture(Employee)
     # This specific example would fail at the Django level due to
     # Employee.company not being null=True, but we expect failure before
     # getting to that level, so using Employee for this is fine.
     employee_fixture.add(1, name='Andy Depressant', manager=None)
     company_fixture = Fixture(Company)
     self.assertRaises(RelatedObjectError, company_fixture.add, 1, name='Macrohard', employee_set=employee_fixture.fk(1))
 def test_o2o_to_preexisting_object(self):
     company = Company.objects.create(pk=1, name='Macrohard')
     employee = Employee.objects.create(pk=1, name='Andy Depressant', company=company, manager=None)
     history_fixture = Fixture(EmployeeHistory)
     history_fixture.add(1, employee=employee, date_joined='2007-02-22')
     history_fixture.load()
     self.assertEqual(Company.objects.count(), 1)
     self.assertEqual(Employee.objects.count(), 1)
     self.assertEqual(EmployeeHistory.objects.count(), 1)
     self.assertEqual(Employee.objects.all()[0].employeehistory, EmployeeHistory.objects.all()[0])
 def test_multiple_m2ms_to_pk_values(self):
     band1 = Band.objects.create(pk=1, name="Nuns N' Hoses")
     band2 = Band.objects.create(pk=2, name='Led Dirigible')
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[1, 2])
     roadie_fixture.load()
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.count(), 2)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.count(), 1)
     self.assertEqual(Band.objects.get(name='Led Dirigible').roadie_set.count(), 1)
    def test_natural_keys_to_preexisting_objects(self):
        rails_n00b = Competency.objects.create(framework='Ruby on Rails', level=1)
        cake_adept = Competency.objects.create(framework='CakePHP', level=2)
        spring_master = Competency.objects.create(framework='Spring', level=3)
        django_guru = Competency.objects.create(framework='Django', level=4)

        jobs = Fixture(JobPosting)
        # No M2M
        jobs.add(1, title='Rails Intern', main_competency=('Ruby on Rails', 1))
        # Single M2M with a tuple in a single-item list
        jobs.add(2, title='Elder Django Deity', main_competency=('Django', 4),
            additional_competencies=[('Ruby on Rails', 1)])
        # Several M2Ms with a list of tuples
        jobs.add(3, title='A man of many talents', main_competency=('Spring', 3),
            additional_competencies=[('CakePHP', 2), ('Ruby on Rails', 1)]
        )
        jobs.load()

        self.assertEqual(JobPosting.objects.count(), 3)
        no_m2m_job = JobPosting.objects.get(pk=1)
        self.assertEqual(no_m2m_job.main_competency, rails_n00b)
        single_m2m_job = JobPosting.objects.get(pk=2)
        self.assertEqual(single_m2m_job.additional_competencies.count(), 1)
        self.assertTrue(rails_n00b in single_m2m_job.additional_competencies.all())
        multi_m2m_job = JobPosting.objects.get(pk=3)
        self.assertEqual(multi_m2m_job.additional_competencies.count(), 2)
        self.assertTrue(all([c in multi_m2m_job.additional_competencies.all() for c in [cake_adept, rails_n00b]]))
 def test_with_generated_relation(self):
     if self.milkman_found:
         employee_fixture = Fixture(Employee)
         employee_fixture.add_random(1)
         employee_fixture.load()
         self.assertEqual(Employee.objects.count(), 1)
         # Since the Company FK is required, there should be one of those
         # around as well
         self.assertEqual(Company.objects.count(), 1)
         # And that company should be connected to the employee
         self.assertTrue(Employee.objects.all()[0] in Company.objects.all()[0].employee_set.all())
 def test_one_level_fk_hierarchy(self):
     # FK from Employee to Company
     company_fixture = Fixture(Company)
     company_fixture.add(1, name='Macrohard')
     employee_fixture = Fixture(Employee)
     employee_fixture.add(1, name='Andy Depressant', company=company_fixture.fk(1), manager=None)
     # Load in reverse order: 2nd, 1st level
     employee_fixture.load()
     self.assertEqual(Company.objects.count(), 1)
     self.assertEqual(Employee.objects.count(), 1)
Пример #10
0
    def test_with_explicit_relation_to_preexisting_object(self):
        if self.milkman_found:
            company = Company.objects.create(name='Macrohard')
            manager = Employee.objects.create(name='Sue Ecide-Note', company=company, manager=None)

            employee_fixture = Fixture(Employee)
            # Name will be random
            employee_fixture.add_random(2, company=company, manager=manager)
            employee_fixture.load()

            self.assertEqual(Company.objects.count(), 1)
            self.assertEqual(Employee.objects.count(), 2)
            self.assertEqual(manager.employee_set.count(), 1)
            self.assertEqual(company.employee_set.count(), 2)
Пример #11
0
 def test_multiple_m2ms_to_mixed_fixture_pk_preexisting(self):
     band1 = Band.objects.create(pk=1, name="Nuns N' Hoses")
     band2_fixture = Fixture(Band)
     band2_fixture.add(2, name='Led Dirigible')
     band3 = Band.objects.create(pk=3, name='Bar Fighters')
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[band1, band2_fixture.fk(2), 3])
     roadie_fixture.load()
     self.assertEqual(Band.objects.count(), 3)
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.count(), 3)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.count(), 1)
     self.assertEqual(Band.objects.get(name='Led Dirigible').roadie_set.count(), 1)
     self.assertEqual(Band.objects.get(name='Bar Fighters').roadie_set.count(), 1)
Пример #12
0
    def test_with_explicit_delayed_fk_relation(self):
        if self.milkman_found:
            company_fixture = Fixture(Company)
            employee_fixture = Fixture(Employee)

            company_fixture.add(1, name='Macrohard')
            # Name will be random
            employee_fixture.add_random(1, company=company_fixture.fk(1), manager=None)
            employee_fixture.load()

            self.assertEqual(Company.objects.count(), 1)
            self.assertEqual(Employee.objects.count(), 1)
            company = Company.objects.get(pk=1)
            self.assertEqual(company.employee_set.count(), 1)
Пример #13
0
    def test_with_explicit_delayed_m2m_relation(self):
        if self.milkman_found:
            band_fixture = Fixture(Band)
            roadie_fixture = Fixture(Roadie)

            band_fixture.add(1, name='Bar Fighters')
            # Name will be random
            roadie_fixture.add_random(1, hauls_for=[band_fixture.fk(1)])
            roadie_fixture.load()

            self.assertEqual(Band.objects.count(), 1)
            self.assertEqual(Roadie.objects.count(), 1)
            self.assertEqual(Roadie.objects.get(pk=1).hauls_for.count(), 1)
            self.assertEqual(Roadie.objects.get(pk=1).hauls_for.all()[0].name, 'Bar Fighters')
Пример #14
0
 def test_m2m_dependent_first(self):
     # The above FK tests already apply to explicit "through" M2Ms, so this
     # only tests normal, "non-through" ones.
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses")
     band_fixture.add(2, name='Led Dirigible')
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[band_fixture.m2m(1), band_fixture.m2m(2)])
     # M2M relations are two-way, but like only one end has the
     # ManyToManyField, the fixture dependency is also defined in one end
     # of the relation. roadie_fixture is the dependent here, load it first
     # to test proper dependency resolution.
     roadie_fixture.load()
     self.assertEqual(Band.objects.count(), 2)
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.count(), 2)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.count(), 1)
     self.assertEqual(Band.objects.get(name='Led Dirigible').roadie_set.count(), 1)
Пример #15
0
 def test_alternate_database(self):
     """
     Explicitly assign fixtures to a non-default database.
     """
     if self.do_tests:
         band_fixture = Fixture(Band)
         band_fixture.add(1, name="Nuns N' Hoses")
         band_fixture.add(2, name='Led Dirigible')
         roadie_fixture = Fixture(Roadie)
         roadie_fixture.add(1, name='Marshall Amp', hauls_for=[band_fixture.m2m(1), band_fixture.m2m(2)])
         call_command('loaddata', band_fixture, roadie_fixture, database='alternate', verbosity=0)
         self.assertEqual(Band.objects.using('alternate').count(), 2)
         self.assertEqual(Roadie.objects.using('alternate').count(), 1)
         self.assertEqual(Band.objects.count(), 0)
         self.assertEqual(Roadie.objects.count(), 0)
         self.assertEqual(Roadie.objects.using('alternate').get(name='Marshall Amp').hauls_for.count(), 2)
         self.assertEqual(Band.objects.using('alternate').get(name="Nuns N' Hoses").roadie_set.count(), 1)
         self.assertEqual(Band.objects.using('alternate').get(name='Led Dirigible').roadie_set.count(), 1)
Пример #16
0
from class_fixtures.models import Fixture
from class_fixtures.tests.models import *

membership_fixture = Fixture(Membership)
band_fixture = Fixture(Band)
musician_fixture = Fixture(Musician)

band_fixture.add(6, name="R.A.M.")

musician_fixture.add(7, name="Michael Skype")

# Keyword-based FK target lookup
membership_fixture.add(9,
    musician = musician_fixture.fk(7),
    band = band_fixture.fk(6),
    date_joined = '1980-05-19',
    instrument = "Voice",
)
from class_fixtures.models import Fixture
from class_fixtures.tests.models import *

membership_fixture = Fixture(Membership)
band_fixture = Fixture(Band)
metalband_fixture = Fixture(MetalBand)
musician_fixture = Fixture(Musician)
roadie_fixture = Fixture(Roadie)

band_fixture.add(5, name="Bar Fighters")
metalband_fixture.add(6, name="Brutallica", leather_pants_worn=True)

musician_fixture.add(5, name="Hamish Jetfield")
musician_fixture.add(6, name="Dave Growl")

# Keyword-based FK target lookup
membership_fixture.add(
    7, musician=musician_fixture.fk(6), band=band_fixture.fk(5), date_joined="2000-04-01", instrument="All of them"
)

# Relation token -based FK target lookup
membership_fixture.add(
    8,
    musician=musician_fixture.fk(5),
    band=metalband_fixture.fk(6),
    date_joined="1982-03-03",
    instrument="Guitarrrr-ahh",
)

# Single M2M addition with a kwarg
roadie_fixture.add(3, name="Tats Brimhat", hauls_for=[band_fixture.m2m(5)])
Пример #18
0
"""

    @author Nils Sohn

"""
from class_fixtures.models import Fixture
from registration.models import ShareZone, User

# Create Class Fixtures for User and Share Zone
user_l = Fixture(User)
zones = Fixture(ShareZone)

# Add an instance of a Share Zone to the Fixture
# Add the Share Zone into the User Fixture with other details
zones.add(1, zone = "14623")
user_l.add(
        1,
        first_name="Tall",
        last_name="Paul",
        email="*****@*****.**",
        password="******",
        zipcode="14623",
        pick_up="My house",
        my_zone=zones.fk(1),
        question1="What is your mother's maiden name?",
        answer1="I'm adopted",
        question2="Where did your parents meet?",
        answer2="My dad was a sperm doner"
    )
Пример #19
0
 def test_multiple_m2m_relations(self):
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses")
     band_fixture.add(2, name='Led Dirigible')
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[band_fixture.m2m(1), band_fixture.m2m(2)])
     band_fixture.load()
     roadie_fixture.load()
     self.assertEqual(Band.objects.count(), 2)
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.count(), 2)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.count(), 1)
     self.assertEqual(Band.objects.get(name='Led Dirigible').roadie_set.count(), 1)
Пример #20
0
 def test_reverse_single_m2m_relation(self):
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp')
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses", roadie_set=[roadie_fixture.m2m(1)])
     roadie_fixture.load()
     band_fixture.load()
     self.assertEqual(Band.objects.count(), 1)
     self.assertEqual(Roadie.objects.count(), 1)
     self.assertEqual(Roadie.objects.get(name='Marshall Amp').hauls_for.filter(name="Nuns N' Hoses").count(), 1)
     self.assertEqual(Band.objects.get(name="Nuns N' Hoses").roadie_set.filter(name='Marshall Amp').count(), 1)
Пример #21
0
 def test_non_iterable_m2m_definition(self):
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses")
     roadie_fixture = Fixture(Roadie)
     # hauls_for requires a one-item iterable
     self.assertRaises(FixtureUsageError, roadie_fixture.add, 1, name='Marshall Amp', hauls_for=band_fixture.m2m(1))
Пример #22
0
 def test_empty_m2m_relation(self):
     roadie_fixture = Fixture(Roadie)
     roadie_fixture.add(1, name='Marshall Amp', hauls_for=[])
     roadie_fixture.load()
     self.assertEqual(Roadie.objects.count(), 1)
Пример #23
0
 def test_raw_mode(self):
     company_fixture = Fixture(Company)
     company_fixture.add(1, name='Bloatware Corporation')
     employee_fixture = Fixture(Employee)
     employee_fixture.add(1, name='Andy Depressant', company=company_fixture.fk(1), manager=None)
     # Due to raw=True, the custom save() method that sets
     # 'cog_in_the_machine' to True should not get run.
     raw_employee_fixture = Fixture(Employee, raw=True)
     raw_employee_fixture.add(2, name='Sadie Peon', company=company_fixture.fk(1), manager=None)
     company_fixture.load()
     employee_fixture.load()
     raw_employee_fixture.load()
     self.assertEqual(Employee.objects.count(), 2)
     normal = Employee.objects.get(name='Andy Depressant')
     raw = Employee.objects.get(name='Sadie Peon')
     self.assertEqual(normal.cog_in_the_machine, True)
     self.assertEqual(raw.cog_in_the_machine, False)
Пример #24
0
 def test_adding_duplicate_pk(self):
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses")
     self.assertRaises(FixtureUsageError, band_fixture.add, 1, name='Led Dirigible')
Пример #25
0
 def test_two_level_fk_o2o_hierarchy_mixed(self):
     # FK from Employee to Company, O2O from EmployeeHistory to Employee
     company_fixture = Fixture(Company)
     company_fixture.add(1, name='Macrohard')
     employee_fixture = Fixture(Employee)
     employee_fixture.add(1, name='Andy Depressant', company=company_fixture.fk(1), manager=None)
     history_fixture = Fixture(EmployeeHistory)
     history_fixture.add(1, employee=employee_fixture.o2o(1), date_joined='2007-02-22')
     # Load in mixed order: 3rd, 1st, 2nd level
     history_fixture.load()
     self.assertEqual(Company.objects.count(), 1)
     self.assertEqual(Employee.objects.count(), 1)
     self.assertEqual(EmployeeHistory.objects.count(), 1)
Пример #26
0
 def test_simple_fixture(self):
     band_fixture = Fixture(Band)
     band_fixture.add(1, name="Nuns N' Hoses")
     band_fixture.load()
     self.assertEqual(Band.objects.count(), 1)
Пример #27
0
from class_fixtures.models import Fixture
from class_fixtures.tests.models import Company, Employee, EmployeeHistory

company_fixture = Fixture(Company)
employee_fixture = Fixture(Employee)
employee_history_fixture = Fixture(EmployeeHistory)

company_fixture.add(3, name="Dewey, Cheatem & Howe")
employee_fixture.add(5, name="Sly M. Ball", company=company_fixture.fk(3))
employee_fixture.add(6, name="Mei Ting", company=company_fixture.fk(3), manager=employee_fixture.fk(5))
employee_history_fixture.add(5, employee=employee_fixture.o2o(5), date_joined="2000-11-03")
employee_history_fixture.add(6, employee=employee_fixture.o2o(6), date_joined="1985-12-28")
Пример #28
0
 def test_circular_dependency(self):
     company_fixture = Fixture(Company)
     employee_fixture = Fixture(Employee)
     company_fixture.add(1, name='Dewey, Cheatem & Howe')
     # Trying to be each other's managers
     employee_fixture.add(1, name='Sly M. Ball', company=company_fixture.fk(1), manager=employee_fixture.fk(2))
     employee_fixture.add(2, name='Mei Ting', company=company_fixture.fk(1), manager=employee_fixture.fk(1))
     company_fixture.load()
     self.assertRaises(RelatedObjectError, employee_fixture.load)
Пример #29
0
# The fixtures in this file will be loaded during a syncdb operation.
from class_fixtures.models import Fixture
from class_fixtures.tests.models import Party, Politician

initial_party = Fixture(Party)
initial_politician = Fixture(Politician)
initial_party.add(2, name="The People's Technocratic Party of Vinnland")
initial_politician.add(2, name="Petrus T. Ratajczyk", party=initial_party.fk(2))
Пример #30
0
 def test_fk_relation(self):
     company_fixture = Fixture(Company)
     company_fixture.add(1, name='Macrohard')
     employee_fixture = Fixture(Employee)
     employee_fixture.add(1, name='Andy Depressant', company=company_fixture.fk(1), manager=None)
     company_fixture.load()
     employee_fixture.load()
     self.assertEqual(Company.objects.count(), 1)
     self.assertEqual(Employee.objects.count(), 1)
     self.assertTrue(Employee.objects.all()[0].company == Company.objects.all()[0])