def test_import_from_csv_url(csvfile, monkeypatch, teacher):
    monkeypatch.setattr(urllib, 'urlopen', lambda url: open(csvfile))
    created, found = bulk.import_from_csv(
        teacher, 'http://example.com/fake.csv')
    assert [p.name for p in created] == ['First Person', 'Second Person']
    assert found == []
    assert Profile.objects.count() == 5
def test_skip_found(csvfile, teacher):
    p = f.ProfileFactory.create(name='Second Person', phone='+13336660000')
    s = f.ProfileFactory.create(name='Second Person')
    f.RelationshipFactory.create(to_profile=s, from_profile=teacher)
    f.RelationshipFactory.create(to_profile=s, from_profile=p)
    created, found = bulk.import_from_csv(teacher, csvfile)
    assert [p.name for p in created] == ['First Person']
    assert [p.name for p in found] == ['Second Person']
    assert Profile.objects.count() == 5
def test_import_from_csv_file(csvfile, teacher):
    created, found = bulk.import_from_csv(teacher, csvfile)
    assert [p.name for p in created] == ['First Person', 'Second Person']
    assert [
        {g.name for g in p.students[0].student_in_groups.all()}
        for p in created
        ] == [{'groupA'}, {'groupB', 'groupA'}]
    assert found == []
    assert Profile.objects.count() == 5
Beispiel #4
0
 def handle(self, *args, **options):
     verbosity = int(options.get('verbosity', 1))
     if len(args) == 2:
         teacher_email, fn = args
         source_phone = None
     elif len(args) == 3:
         teacher_email, fn, source_phone = args
     else:
         raise CommandError(
             "import_users accepts two or three arguments.")
     try:
         teacher = Profile.objects.get(user__email=teacher_email)
     except Profile.DoesNotExist:
         raise CommandError(
             "Teacher with email %r not found." % teacher_email)
     if verbosity:
         self.stdout.write("\nLoading %s for %r:\n" % (fn, teacher_email))
     created, found = import_from_csv(teacher, fn, source_phone)
     if verbosity:
         for p in created:
             self.stdout.write("  Created %s.\n" % p.name)
         for p in found:
             self.stdout.write("  Found %s.\n" % p.name)
def test_set_source_phone(csvfile, teacher):
    created, found = bulk.import_from_csv(teacher, csvfile, '+13216540987')
    assert [p.source_phone for p in created] == ['+13216540987', '+13216540987']