(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'git svn dcommit --interactive series'>)}
          spids: [10]
        )
      ]
      spids: [10]
    )
    (C {(.)} {(./lib-git-svn.sh)})
    (C {(test_expect_success)} {(SQ <'initialize repo'>)} 
      {
        (SQ <'\n'> <'\tsvn_cmd mkdir -m"mkdir test-interactive" "$svnrepo/test-interactive" &&\n'> 
          <'\tgit svn clone "$svnrepo/test-interactive" test-interactive &&\n'> <'\tcd test-interactive &&\n'> <'\ttouch foo && git add foo && git commit -m"foo: first commit" &&\n'> 
          <'\tgit svn dcommit\n'> <'\t'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'answers: y [\\n] yes'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\techo "change #1" >> foo && git commit -a -m"change #1" &&\n'> 
          <'\t\techo "change #2" >> foo && git commit -a -m"change #2" &&\n'> <'\t\techo "change #3" >> foo && git commit -a -m"change #3" &&\n'> <'\t\t( echo "y\n'> <'\n'> 
          <'y" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) &&\n'> <'\t\ttest $(git rev-parse HEAD) = $(git rev-parse remotes/git-svn)\n'> <'\t)\n'> <'\t'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'answers: yes yes no'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\techo "change #1" >> foo && git commit -a -m"change #1" &&\n'> 
          <'\t\techo "change #2" >> foo && git commit -a -m"change #2" &&\n'> <'\t\techo "change #3" >> foo && git commit -a -m"change #3" &&\n'> <'\t\t( echo "yes\n'> <'yes\n'> 
          <'no" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) &&\n'> <'\t\ttest $(git rev-parse HEAD^^^) = $(git rev-parse remotes/git-svn) &&\n'> 
          <'\t\tgit reset --hard remotes/git-svn\n'> <'\t)\n'> <'\t'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'answers: yes quit'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\techo "change #1" >> foo && git commit -a -m"change #1" &&\n'> 
          <'\t\techo "change #2" >> foo && git commit -a -m"change #2" &&\n'> <'\t\techo "change #3" >> foo && git commit -a -m"change #3" &&\n'> <'\t\t( echo "yes\n'> 
          <'quit" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) &&\n'> <'\t\ttest $(git rev-parse HEAD^^^) = $(git rev-parse remotes/git-svn) &&\n'> 
          <'\t\tgit reset --hard remotes/git-svn\n'> <'\t)\n'> <'\t'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'answers: all'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\techo "change #1" >> foo && git commit -a -m"change #1" &&\n'> 
          <'\t\techo "change #2" >> foo && git commit -a -m"change #2" &&\n'> <'\t\techo "change #3" >> foo && git commit -a -m"change #3" &&\n'> 
          <'\t\t( echo "all" | GIT_SVN_NOTTY=1 git svn dcommit --interactive ) &&\n'> <'\t\ttest $(git rev-parse HEAD) = $(git rev-parse remotes/git-svn) &&\n'> 
          <'\t\tgit reset --hard remotes/git-svn\n'> <'\t)\n'> <'\t'>
        )
      }
    )
    (C {(test_done)})
  ]
)