If you want a row for each unit test, and for the command to either add a row or update an existing row then you need to have a key column. I've written&used this python library for similar problems: http://sheetsync.readthedocs.org/en/latest/
Once you've installed it with:
pip install sheetsync
You could write a gdocs_addrow.py
script like so:
import sys,sheetsync,argparse
def parse_cmd_line():
parser = argparse.ArgumentParser()
parser.add_argument("--id", metavar="GOOGLESHEET_KEY",required=True)
parser.add_argument("--key", metavar="KEY_COLUMN_NAME",required=True)
parser.add_argument("--sheet", metavar="WORKSHEET_NAME",default="Sheet1")
parser.add_argument('fieldvals', metavar='FIELD=VALUE', nargs='+',
help="A list of FIELD=VALUE arguments")
opts = parser.parse_args()
opts.fieldvalue_dict = dict([fv.split("=") for fv in opts.fieldvals])
if not opts.fieldvalue_dict.has_key(opts.key):
print "'%s' specified as the key field, but not found in field=value list" % opts.key
sys.exit()
opts.key_value = opts.fieldvalue_dict[opts.key]
return opts
if __name__ == '__main__':
opts = parse_cmd_line()
target = sheetsync.Sheet(username="<YOUR_GOOGLE_USERNAME>",
password="<PASSWORD_OR_APP_SPECIFIC_PASSWORD>",
document_key=opts.id,
sheet_name=opts.sheet,
key_column_headers=[opts.key])
target.inject({opts.key_value:opts.fieldvalue_dict})
and use like this:
gdocs_addrow.py --id 1iZa...BqQ --key name name="Trevor B" age="31"